[Unity]关于多角色自由切换主操作角色的问题

您所在的位置:网站首页 人工学院怎么切换主角 [Unity]关于多角色自由切换主操作角色的问题

[Unity]关于多角色自由切换主操作角色的问题

2024-07-12 14:44| 来源: 网络整理| 查看: 265

昨天群里一个朋友说他想尝试着做一个多主角的游戏。

比如一个小队三个角色,可以自由的切换其中一个为主操作角色,其他的变成AI。

这个问题其实有很多种解决方法,我这里有一个最简单的方法。

想法的示例图如下:

新建一个空物体作为多角色切换的管理,用Tab键来切换角色。

public GameObject[] MainPlayer; private GameObject mpMainPlayer;// 主要角色 Vector3 forward; public float speed = 1.0f; [SerializeField] private int iCharcaterCount = 0; void Start() { forward = this.transform.TransformDirection(Vector3.forward); } void Update() { ChangeCharacter (); SimpleMove (); } void ChangeCharacter()//角色切换 { if(Input.GetKeyDown(KeyCode.Tab)) { iCharcaterCount++; if(iCharcaterCount >= MainPlayer.Length) { iCharcaterCount = 0; } mpMainPlayer = null; } switch(iCharcaterCount) { case 0 : { if(mpMainPlayer == null){mpMainPlayer = MainPlayer[0];Debug.Log(mpMainPlayer.name);} if(MainPlayer[0].GetComponent() == null) { MainPlayer[0].AddComponent(); } }break; case 1: { if(mpMainPlayer == null){mpMainPlayer = MainPlayer[1];Debug.Log(mpMainPlayer.name);} if(MainPlayer[1].GetComponent() == null) { MainPlayer[1].AddComponent(); } }break; case 2 : { if(mpMainPlayer == null){mpMainPlayer = MainPlayer[2];Debug.Log(mpMainPlayer.name);} if(MainPlayer[2].GetComponent() == null) { MainPlayer[2].AddComponent(); } }break; default : break; } } void SimpleMove()//移动 { if(Input.GetKey(KeyCode.W)) { if (mpMainPlayer.GetComponent () != null) { mpMainPlayer.GetComponent().SimpleMove(forward * speed); } } }这样就可以较为简单的做到切换角色了。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3