【UNET自学日志】Part 17 更好的重生
来源:互联网 发布:重低音歌曲推荐 知乎 编辑:程序博客网 时间:2024/06/10 06:33
新建一个tag “ZombieSpawn”,将物体ZombieSpawn添加这个tag,然后多复制几个放在不同的位置上
打开之前的脚本GameManaer_ZombieSpawner
using UnityEngine;using System.Collections;using UnityEngine.Networking;public class GameManaer_ZombieSpawner : NetworkBehaviour { //僵尸的预制件 [SerializeField] GameObject zombiePrefab; //僵尸重生点 private GameObject[] zombieSpawns; //计数器 private int counter; //僵尸的数量 private int numberOfZombies = 50; //僵尸的最大数量 private int maxNumberOfZombies = 80; //僵尸重生的时间 private float waveRate = 10; //僵尸是否能够重生 private bool isSpawnActivated = true; public override void OnStartServer() { //寻找标签为ZombieSpawn的物体,即僵尸的重生点 zombieSpawns = GameObject.FindGameObjectsWithTag("ZombieSpawn"); //开启协程 StartCoroutine(ZombieSpawner()); } IEnumerator ZombieSpawner() { for (; ; ) { //等待僵尸的重生时间 yield return new WaitForSeconds(waveRate); //寻找标签为Zombie的物体,即僵尸 GameObject[] zombies = GameObject.FindGameObjectsWithTag("Zombie"); //如果僵尸的数量小于最大数量,调用函数CommenceSpawn if (zombies.Length < maxNumberOfZombies) { CommenceSpawn(); } } } void CommenceSpawn() { if (isSpawnActivated) { for (int i = 0; i < numberOfZombies; i++) { //从多个重生点中随机的选取其中的一个 int randomindex = Random.Range(0, zombieSpawns.Length); //调用SpawnZombies函数,将随机出来的重生点的位置传递过去 SpawnZombies(zombieSpawns[randomindex].transform.position); } } } //在指定的位置(spawnPos)上生成僵尸 void SpawnZombies(Vector3 spawnPos) { counter++; GameObject go = GameObject.Instantiate(zombiePrefab, spawnPos, Quaternion.identity) as GameObject; NetworkServer.Spawn(go); go.GetComponent<Zombie_ID>().zombieID = "Zombie " + counter; }}
0 0
- 【UNET自学日志】Part 17 更好的重生
- 【UNET自学日志】Part 13 僵尸的ID
- 【UNET自学日志】Part1 UNET的设置与运动同步
- 【UNET自学日志】Part7 独一无二的ID
- 【UNET自学日志】Part8 射击
- 【UNET自学日志】Part12 僵尸
- 【UNET自学日志】Part20 UI
- 【UNET自学日志】Part6 更有效率的旋转同步
- 【UNET自学日志】Part2 旋转同步
- 【UNET自学日志】Part4 模拟延迟
- 【UNET自学日志】Part9 造成伤害
- 【UNET自学日志】Part10 摧毁玩家
- 【UNET自学日志】Part11 玩家复活
- 【UNET自学日志】Part14 射击那些僵尸
- 【UNET自学日志】Part15 僵尸攻击玩家
- 【UNET自学日志】Part18 修复一些错误
- 【UNET自学日志】Part5 解决延迟产生的画面不流畅问题
- 【UNET自学日志】Part3 变得更有效率一点
- 【HUSTOJ】1015: 判断天数
- upd简单广播例子
- Android学习RecyclerView小结
- Android中shape的属性
- 16进制浮点数
- 【UNET自学日志】Part 17 更好的重生
- 格式化硬盘
- 不同php版本中VC6与VC9,Thread Safety与None-Thread Safe,Apache module与fastcgi的区别与选择
- Linux、开源软件发展史
- js/jquery中刷新iframe方法(兼容主流)
- 51nod 1067 博弈
- 连接不同数据的UIL
- startActivityForResult和setResult详解
- MongoDB删除文档