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

本文关键字:5D 平台 位置 弹丸 | 更新日期: 2023-09-27 18:33:29

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

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

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

将一个

空游戏对象放在您希望从中生成射弹的位置。将其嵌套在触发的角色中。

然后找到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));
}