首先这里我们有俩个玩家,每一个玩家都有所对应的脚本以及操作,这里就需要用到对象数组去存储玩家(当然集合也可以使用,其方法大同小异),这里我用的是数组存储。
private GameObject[] players;//玩家存放器
通过 GameObject.FindGameObjectsWithTag查询多个相同标签的对象
players = GameObject.FindGameObjectsWithTag("Player");
为了方便知道对应玩家,这里给把玩家一一对应,避免出现找不到。
players[0] = GameObject.Find("Player1");
players[1] = GameObject.Find("G36C@Draw");
注:这里如果使用循环去依次查找玩家的话,用SetAction去隐藏其中一个玩家会出现下标异常的错误,因为隐藏玩家之后所对应的脚本,以及目标都会消失,无法获取。就相对于原本要查询俩个东西,一个东西突然消失找不到了,就异常了。
玩家的切换这里用到的是一个实时更新位置的一个操作,根据游戏的进行每帧进行调取玩家所对应的位置。通过查找Tag的方式取查找所对应的人的位置
player = GameObject.FindWithTag("Player").transform;
void Update()
{
//每帧都调取更新玩家的位置
player = GameObject.FindWithTag("Player").transform;
if (feng >= 50)//当积分>5