我有这个问题,我无法修复它。我已经尝试在互联网上搜索,但我一无所获。 “射弹产卵”位于我的角色旁边。当我左键单击我的鼠标时,射弹开始向前射击(例如,在Z轴上以20倍的速度),但是这个问题让我很生气。有时它从正确的地方开始,有时在每次点击之下和之下。
public Rigidbody projectile;
public float speed = 20;
private Transform spawnPoint;
private int SPAWN_DISTANCE = 1;
void Awake()
{
spawnPoint = transform.Find("SpawnPoint");
}
void Update ()
{
//
if (Input.GetButtonDown("Fire1"))
{
atkSpeed = 0.2f;
Shoot(projectile);
attackTime = atkSpeed;
chargeLevel = 0;
}
//
}
void Shoot(Rigidbody proj){
Rigidbody _projBody = Instantiate(proj, spawnPoint.position + SPAWN_DISTANCE * transform.forward, transform.rotation) as Rigidbody;
_projBody.velocity = transform.TransformDirection(new Vector3(0, 0,speed));
}
正在发生的事情的视频:https://www.youtube.com/watch?v=GLgrfl2zU9w
编辑:我昨天解决了自己。答案 0 :(得分:0)
将空游戏对象放置在您希望射弹产生的位置。将其嵌入发射的角色内。
然后找到SpawnPoint
。
private Transform spawnPoint;
private int SPAWN_DISTANCE = 1;
void Awake()
{
spawnPoint = transform.Find("SpawnPoint");
}
也可以对拍摄进行更改。
void Shoot()
{
Rigidbody _projBody = Instantiate(projectile, spawnPoint.position + SPAWN_DISTANCE * transform.forward, transform.rotation) as Rigidbody;
_projBody.velocity = transform.TransformDirection(new Vector3(0, 0,speed));
}