您的位置:首页 > 移动开发 > Unity3D

Unity学习笔记八 - Survival Shooter Tutorial

2016-05-02 09:07 603 查看
后面,刚体、网格导航和动画基础部分可能要单分章节来说,今天继续

EnemyMovement.cs中注释

    void Awake ()
    {
        player = GameObject.FindGameObjectWithTag ("Player").transform;

        playerHealth = player.GetComponent <PlayerHealth> ();
        enemyHealth = GetComponent <EnemyHealth> ();
        nav = GetComponent <NavMeshAgent> ();
    }

    void Update ()
    {
        if(enemyHealth.currentHealth > 0 && playerHealth.currentHealth > 0) 
//怪物当前血量和玩家当前血量为0
        {
    
            nav.SetDestination (player.position); 
//使用enemy上的NavMeshAgent组件在网格导航上把玩家的当前坐标设为移动终点,这是一种unity自打的寻找最短路径的方式
        }
        else
        {
            nav.enabled = false;
//跳转到这里,说明玩家或此enemy死亡,把此enemy的NavMeshAgent设为不可用
        }
    }

然后看下EnemyManager.cs中的注释

这里注意,由于空的物体EnemyManager上帮了3个EnemyManager.cs脚本,只是参数不同,所以三个脚本会同时进行

 
void Start ()
    {
        InvokeRepeating ("Spawn", spawnTime, spawnTime); 
//在开始后的spawnTime后,每隔spawnTime执行Spawn,有点像定时器
    }

    void Spawn ()
    {
        if(playerHealth.currentHealth <= 0f)
//如果玩家血量小于0,即已死亡则直接返回,否则执行后面生成怪物的部分
        {
            return;
        }

        int spawnPointIndex = Random.Range (0, spawnPoints.Length);
//这里意思是说使spawnPointIndex等于0到spawnPoints.Length<
b807
/span>(按配置3个脚本中其都等于1)间的整数,断点测试从来都返回了,因而判断Range(min,Max),不会等于Max的值

        Instantiate (enemy, spawnPoints[spawnPointIndex].position, spawnPoints[spawnPointIndex].rotation);
//spawnPoints就是我们建立的3个空的坐标点,为一个新的enemy实体体统位置的,初始朝向信息,这句指在位置spawnPoints[spawnPointIndex].position
= spawnPoints[0].position
,以spawnPoints[0].rotation的转向,按照enemy变量指向的Prefabs生成一个敌对怪物实体
    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息