文章目录
- 射击脚本
- 新增子弹预制体
- 子弹挂载脚本,实现触碰销毁
- 子弹添加拖尾效果
- 完结
射击脚本
public class Weapon : MonoBehaviour
{public GameObject bulletPrefab; // 子弹预制体public Transform bulletSpawn; // 子弹生成位置public float bulletVelocity = 30f; // 子弹速度public float bulletPrefabLifeTime = 3f; // 子弹存在时间void Update(){// 按下鼠标左键if (Input.GetKeyDown(KeyCode.Mouse0)){FireWeapon(); // 开火}}private void FireWeapon(){// 实例化子弹GameObject bullet = Instantiate(bulletPrefab, bulletSpawn.position, Quaternion.identity);// 发射子弹bullet.GetComponent<Rigidbody>().AddForce(bulletSpawn.forward.normalized * bulletVelocity, ForceMode.Impulse);// 一段时间后销毁子弹StartCoroutine(DestroyBulletAfterTime(bullet, bulletPrefabLifeTime));}private IEnumerator DestroyBulletAfterTime(GameObject bullet, float delay){yield return new WaitForSeconds(delay);Destroy(bullet);}
}
新增子弹预制体
如果没有子弹模型,可以新建一个胶囊体缩小尺寸代替
子弹挂载脚本,实现触碰销毁
public class Bullet : MonoBehaviour
{private void OnCollisionEnter(Collision collision){if (collision.gameObject.CompareTag("Target")){// 打中目标并输出信息print("Hit " + collision.gameObject.name + "!");// 销毁目标物体Destroy(collision.gameObject);}}
}
子弹添加拖尾效果
新增拖尾材质Particles/Standard Unlit,配置参数
绑定材质
完结
赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注
,以便我第一时间收到反馈,你的每一次支持
都是我不断创作的最大动力。当然如果你发现了文章中存在错误
或者有更好的解决方法
,也欢迎评论私信告诉我哦!
好了,我是向宇
,https://xiangyu.blog.csdn.net
一位在小公司默默奋斗的开发者,出于兴趣爱好,最近开始自学unity,闲暇之余,边学习边记录分享,站在巨人的肩膀上,通过学习前辈们的经验总是会给我很多帮助和启发!php是工作,unity是生活!如果你遇到任何问题,也欢迎你评论私信找我, 虽然有些问题我也不一定会,但是我会查阅各方资料,争取给出最好的建议,希望可以帮助更多想学编程的人,共勉~