Unity-使物体运动起来(以发射子弹为例)

使子弹运动起来

  1. 创建子弹的C#脚本MoveForward,内容如下
public class MoveForward : MonoBehaviour
{
    // Start is called before the first frame update
    public float speed=30.0f;
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        transform.Translate(Vector3.forward * Time.deltaTime*speed);
    }
}
  1. Assets-右击-创建文件夹Prefabs,用于存放子弹。将子弹拖入到该文件,选项为original prefab(原始预制件)。

  2. 在PlayerController中添加public变量projPrefab,保存,拖动Prefabs文件夹下的子弹到Player中的ProjPrefab。在这里插入图片描述

  3. 使用空格键来发射子弹

        if(Input.GetKeyDown(KeyCode.Space)) //press the space
        {
            //launch a prejPrefab from the player
            Instantiate(projPrefab, transform.position, projPrefab.transform.rotation);
        }

子弹出界销毁

通过判断对象的位置,在Update()方法中使用Destroy()销毁对象。

    // Start is called before the first frame update
    private float topBound = 30f;
    private float bottomBound = -10f;

    // Update is called once per frame
    void Update()
    {
        if(transform.position.z> topBound|| transform.position.z < bottomBound)
        {
            Destroy(gameObject);
        }
    }
posted @ 2022-10-18 08:47  aw11  阅读(175)  评论(0)    收藏  举报