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生成一个敌对怪物实体
}
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生成一个敌对怪物实体
}
相关文章推荐
- 我是运营,我没有假期
- 肯特·贝克:改变人生的代码整理魔法
- 你应该学习哪种编程语言?
- 每个 Linux 游戏玩家都绝不想要的恼人体验
- 在 Fedora 上使用 Steam play 和 Proton 来玩 Windows 游戏
- [转]我们需要一种其他人能使用的编程语言
- Steam 让我们在 Linux 上玩 Windows 的游戏更加容易
- 如何使用 Steam Play 在 Linux 上玩仅限 Windows 的游戏
- 新一代iPad适配应用之游戏篇
- DB2编程序技巧(1)
- DB2编程序技巧 (四)
- 女人VS编程_国庆快乐
- DB2编程序技巧 (六)
- DB2编程序技巧 (三)
- DB2编程序技巧 (九)
- DB2编程序技巧 (七)
- DB2编程序小小技巧
- DB2编程序技巧 (五)
- VB实现的《QQ美女找茬游戏》作弊器实例
- DB2编程序技巧 (一)