我開始在Unity3d中製作一個簡單的遊戲:一個在牆上拍攝的坦克(見圖片)。坦克不拍攝實例化子彈
一個GameObject
連接到坦克的炮塔,併爲此GameObject
連接下面的腳本:
using UnityEngine;
using System.Collections;
public class Shooter : MonoBehaviour {
public Rigidbody bullet;
public float power = 1500f;
void Update() {
if (Input.GetButtonDown ("Fire1")) {
Rigidbody bulletRB = Instantiate (bullet, transform.position, transform.rotation) as Rigidbody;
Vector3 fwd = transform.TransformDirection(Vector3.forward);
bulletRB.AddForce(fwd*power);
}
}
}
當我按在FIRE1按鈕子彈不射。我在bulletRB.addForce()
之後放置了(測試)Debug.Log("BULLET SHOOT")
。該消息顯示,所以腳本達到了這一點。我的代碼有什麼問題?
幾件事情首先,你看到的場景層次的子彈?在Awake中用Debug調試一個測試腳本,看它是否真的被創建。你可以在OnDestroy中放置另一個調試來查看它是否被破壞。你正在坦克位置創造子彈,也許它正在擊中某件東西並在它離開現場之前自行消滅。我會建議將一個遊戲物體放在槍口的末端,並將其附着在坦克上。您可以使用它的transform.forward作爲子彈方向。 – Everts
在這裏,因爲我想看到一個坦克在牆上拍攝 – novice
@fafase - 你的回答是ok.Tkx –