Unity-使物体运动起来(以发射子弹为例)
使子弹运动起来
- 创建子弹的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);
}
}
-
Assets-右击-创建文件夹Prefabs,用于存放子弹。将子弹拖入到该文件,选项为original prefab(原始预制件)。
-
在PlayerController中添加public变量projPrefab,保存,拖动Prefabs文件夹下的子弹到Player中的ProjPrefab。

-
使用空格键来发射子弹
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);
}
}

浙公网安备 33010602011771号