Unity Cs玩家切换的操作

文章讲述了在Unity3D游戏中如何使用对象数组存储和管理两个玩家对象,通过FindGameObjectsWithTag查询玩家,并在玩家状态变化(如死亡)时禁用相应脚本。玩家位置实时更新,并在满足条件时实现玩家之间的切换,切换过程中处理了可能的异常情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先这里我们有俩个玩家,每一个玩家都有所对应的脚本以及操作,这里就需要用到对象数组去存储玩家(当然集合也可以使用,其方法大同小异),这里我用的是数组存储。

 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值