Part2:Unity学习笔记十一 - Space Shooter

源代码和视频链接放在学习笔记十中

按照16课视频的内容做了一遍,没发现Unity4.x和Unity5.x在这个游戏中的太多不同

1.Rigidbody和Audio不能直接调用了,都要改成GetComponent的格式

2.GUIText在Unity5.x中不能添加了,要先添加一个空物体,然后在Component-》Rendering-》GUI Text添加,不过感觉不如Canvas

3.然后就是我觉得这个代码不如Survival shooter,不知为何我觉得有点乱,定义一个数字的boundary,又定义一个碰撞体的Boundary来控制范围,粒度掌握的尺度我也不是很喜欢,除了必要的分类和封装之外,一个函数超过一眼望去的尺寸在拆分就好,我觉得

脚本DestroybyBoundary脚本中 ,只有一句Trigger collider退出时,销毁对方gameObject本体,由于绑定在cube这个场地边界上,所有在boudary之内的物体完全超出边界时都会被销毁,就是任何退出场景的物体都会被销毁

    void OnTriggerExit(Collider other) {
        Destroy (other.gameObject);
    }

脚本DestroyByContact中

    public GameObject explosion;   //岩石消失粒子效果
    public GameObject playerExplosion;  //player飞船撞毁粒子效果
    private GameController gameController;

    public int scoreValue;

    void Start(){
        GameObject gameControllerObject = GameObject.FindWithTag("GameController");
        if (gameControllerObject != null) {
            gameController = gameControllerObject.GetComponent<GameController> ();    //取得GameController物体上的GameController脚本实体
        }
    }
    void OnTriggerEnter(Collider other) {
        if (other.tag == "Boundary") {
            return;
        } //由于出生在Boundary碰撞体范围内也算Enter,所以把物体进入场景那次排除
        Instantiate(explosion,transform.position,transform.rotation);  //其他情况碰撞就销毁和调用对应粒子效果,这里我觉得粒子效果的产生和销毁关联在一起清晰
        if (other.tag == "Player") {
            Instantiate (playerExplosion, other.transform.position, other.transform.rotation);
            gameController.GameOver ();   //撞到Player,调用player撞毁效果和GameOver的内容
        }
        gameController.AddScore (scoreValue); //其他一个情况就是加分,不管player挂没挂
        Destroy (other.gameObject);
        Destroy (gameObject);   //碰撞与被撞物体都要被销毁
    }


这是简单的内容,回头我在看下Done_Main.unity的内容,没有敌方飞行器感觉不好


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值