我开始在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 –