Unity版本:Unity 2018.2.14f1
原视频链接:https://unity3d.com/cn/learn/tutorials/s/space-shooter-tutorial

教程目录:
Unity游戏开发官方入门教程:飞机大战(一)——创建新项目、导入资源、设置场景
Unity游戏开发官方入门教程:飞机大战(二)——创建飞船对象
Unity游戏开发官方入门教程:飞机大战(三)——设置相机和光照
Unity游戏开发官方入门教程:飞机大战(四)——使用Quad加入背景
Unity游戏开发官方入门教程:飞机大战(五)——实现飞船控制脚本
Unity游戏开发官方入门教程:飞机大战(六)——创建子弹
Unity游戏开发官方入门教程:飞机大战(七)——发射子弹
Unity游戏开发官方入门教程:飞机大战(八)——创建销毁边界
Unity游戏开发官方入门教程:飞机大战(九)——创建和销毁敌人
Unity游戏开发官方入门教程:飞机大战(十)——敌人的爆炸和移动
Unity游戏开发官方入门教程:飞机大战(十一)——游戏控制


本节要点

在上一节中, 我们发现创建的子弹并不会销毁,会沿着Z轴一直飞行,我们需要子弹离开游戏区的时候销毁它们。
本节我们会创建一个包围盒,用于作为销毁子弹的边界。后续我们会使用该销毁边界,处理飞出游戏区域的障碍物。

创建一个Boundary(Cube对象)

Hierarchy -> Create -> 3D Object -> Cube,重命名为Boundary,重置Transform,去掉勾选Mesh Renderer,并勾选Box Collider的Is Trigger,用于检测飞出子弹的碰撞。

接下来,设置Boundary的大小:position = (0,0,5),Scale=(15,1,20)。

效果如下:

为Boundary添加脚本

在Hierarchy中选中Boundary:Add Component -> New Script,新建脚本,名为“DestroyByBoundary”,在Assets中,将脚本DestroyByBoundary移到Script文件夹下。

编辑脚本:

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

public class DestroyByBoundary : MonoBehaviour
{
    //当其他碰撞器离开Boundary的触发器时,销毁该碰撞器对应的游戏对象。
    void OnTriggerExit(Collider other)
    {
        Destroy(other.gameObject);
    }
}

保存脚本后,运行游戏,效果如下:

可见我们已成功销毁飞出游戏边界的子弹。


参考资料:https://unity3d.com/cn/learn/tutorials/s/space-shooter-tutorial

Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐