Unity(二)子弹的移动与销毁

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class BulletMove : MonoBehaviour {

	//子弹移动速度
	private float bulletTime = 5f;

	// Use this for initialization
	void Start () {
		
	}
	
	// Update is called once per frame
	void Update () {
		transform.Translate (Vector3.up * bulletTime * Time.deltaTime);

		//当子弹超出屏幕后销毁
		if (transform.position.y > 5f) {
			Destroy (gameObject);
		}
	}

	//触碰到敌机以后销毁子弹
	void OnTriggerEnter2D(Collider2D other){
		if (other.tag == "Enemy") {
			Destroy (gameObject);
		}
	}
}

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要让敌人在Unity中射击发射子弹,你需要创建一个敌人和一个子弹对象,然后编写脚本来控制它们的行为。 首先,创建一个敌人和一个子弹的预制体,在它们的Transform组件中设置好相应的初始位置和旋转角度。 在敌人的脚本中,你需要定义敌人的射击行为。这通常包括以下步骤: 1. 设置敌人的射击频率和射击的时间间隔。 2. 在固定的时间间隔内,实例化一个子弹对象。 3. 设置子弹的初始位置和方向,使其从敌人的位置朝向玩家飞行。 4. 给子弹添加一个刚体组件,以便它可以在空中移动。 5. 添加子弹的碰撞检测,以便它可以与玩家或其他游戏对象碰撞并造成伤害。 下面是一个简单的敌人脚本示例,可以让敌人在Unity中发射子弹: ```csharp public class EnemyShoot : MonoBehaviour { public GameObject bulletPrefab; // 子弹预制体 public Transform bulletSpawnPoint; // 子弹发射位置 public float fireRate = 1f; // 射击频率 private float nextFireTime; // 下一次射击时间 // 敌人射击行为 private void Shoot() { if (Time.time > nextFireTime) { nextFireTime = Time.time + fireRate; GameObject bullet = Instantiate(bulletPrefab, bulletSpawnPoint.position, Quaternion.identity); bullet.transform.LookAt(PlayerController.instance.transform.position); // 调整子弹方向 bullet.GetComponent<Rigidbody>().velocity = bullet.transform.forward * 10f; // 子弹速度 Destroy(bullet, 3f); // 3秒后销毁子弹 } } private void Update() { Shoot(); // 每帧检测是否可以射击 } } ``` 在上面的脚本示例中,我们通过使用Instantiate()方法来实例化一个子弹对象,并设置它的位置和方向。然后,我们使用LookAt()方法调整子弹的方向,使其朝向玩家。最后,我们通过给子弹添加一个刚体组件,并将它向前移动,来让子弹在空中飞行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值