创建自上而下的射击游戏并让子弹无限期地朝鼠标方向移动

问题描述 投票:0回答:1

我正在尝试在 Unity 中为一个大学项目创建一个自上而下的射击游戏,并且在编程射击机制时遇到问题,下面是子弹预制件的脚本,该脚本应该使子弹沿着玩家鼠标移动的方向移动在实例化时。

我能够使用 Unity 在线教程之一中的一些代码来让对象向鼠标位置移动,问题是一旦它到达鼠标位置它就会停止。我需要知道如何制作它,使其朝鼠标位置的方向移动,然后无限期地沿同一方向移动?

public class Shoot : MonoBehaviour
{
    public int speed;
    Vector3 mp;
    Vector2 md;
    float mA;
    // Start is called before the first frame update
    void Awake()
    {
        mp = Camera.main.ScreenToWorldPoint(Input.mousePosition);
        md = mp - transform.position;
        mA = Vector2.SignedAngle(Vector2.up, md);
        transform.eulerAngles = new Vector3(0, 0, mA);
    }
    

    // Update is called once per frame
    void Update()
    {
        transform.position = 
         Vector2.MoveTowards(transform.position, mp, speed * Time.deltaTime);
    }
}
c# unity-game-engine 2d
1个回答
0
投票

使用玩家 Transform.position.forward 作为射线的目的地,将玩家的位置作为射线的原点,在射击时创建射线投射命令。

https://docs.unity3d.com/ScriptReference/Physics.Raycast.html

https://docs.unity3d.com/ScriptReference/RaycastCommand.html

© www.soinside.com 2019 - 2024. All rights reserved.