弹丸Y轴起始位置 - 2.5D平台

时间:2014-12-06 10:40:33

标签: c# unity3d

我有这个问题,我无法修复它。我已经尝试在互联网上搜索,但我一无所获。 “射弹产卵”位于我的角色旁边。当我左键单击我的鼠标时,射弹开始向前射击(例如,在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

编辑:我昨天解决了自己。

1 个答案:

答案 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));
}