网站被入侵后需做的检测(1),旅游网站系统建设,抖音91,网业上有错误怎么解决【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili
教程源地址#xff1a;https://www.udemy.com/course/2d-rpg-alexdev/
本章节实现了用键盘切换角色UI#xff0c;技能树UI#xff0c;合成面板UI和设置UI UI.cs
1. 变量与字段 characterUI#xff0c;skill…【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili
教程源地址https://www.udemy.com/course/2d-rpg-alexdev/
本章节实现了用键盘切换角色UI技能树UI合成面板UI和设置UI UI.cs
1. 变量与字段 characterUIskillTreeUIcraftUIoptionsUI这些字段分别表示不同的UI界面如角色界面、技能树界面、制作界面、选项界面。这些字段会通过 Inspector 面板进行设置和关联确保这些UI界面在脚本中可以通过 GameObject 引用。 itemToolTip 和 statToolTip这两个字段表示物品提示框和状态提示框用于显示相应的提示信息。这些也是 public 类型因此可以通过 Inspector 在编辑器中关联。
2. Start() 方法 SwitchTo(null)在 Start 方法中调用 SwitchTo传入 null 作为参数。此操作会在游戏启动时隐藏所有UI元素因为 SwitchTo 方法会将所有子元素UI面板设置为 SetActive(false)。 itemToolTip.gameObject.SetActive(false) 和 statToolTip.gameObject.SetActive(false)这两行代码会在游戏启动时隐藏物品提示框和状态提示框确保它们初始状态不可见。
3. SwitchTo(GameObject _menu) 方法 作用该方法用于切换到指定的UI界面。 for (int i 0; i transform.childCount; i)遍历当前UI对象的所有子物体调用 SetActive(false) 隐藏它们。这一步确保了在显示新的UI界面时所有其他的UI界面都会被隐藏。 _menu.SetActive(true)如果传入的 _menu 不为 null则显示该UI界面通过 SetActive(true)。
4. SwitchWithKeyTo(GameObject _menu) 方法 作用该方法用于处理切换UI的逻辑如果目标UI界面已经显示则隐藏它如果目标UI界面未显示则调用 SwitchTo 显示它。 if (_menu ! null _menu.activeSelf)首先检查传入的 _menu 是否为 null并且它是否已经显示即 activeSelf 为 true。如果是则调用 SetActive(false) 隐藏该UI界面。 SwitchTo(_menu)如果目标UI界面未显示则调用 SwitchTo 方法来显示该界面。 脚本的布置方式
using UnityEngine;public class UI : MonoBehaviour
{//存放4个UI界面[SerializeField] private GameObject characterUI;[SerializeField] private GameObject skillTreeUI;[SerializeField] private GameObject craftUI;[SerializeField] private GameObject optionsUI;//物品提示框和状态提示框public UI_ItemTooltip itemToolTip;public UI_StatToolTip statToolTip;void Start(){SwitchTo(null);itemToolTip.gameObject.SetActive(false);//戏启动时隐藏物品提示框和状态提示框statToolTip.gameObject.SetActive(false);}void Update(){if (Input.GetKeyDown(KeyCode.C))SwitchWithKeyTo(characterUI);if (Input.GetKeyDown(KeyCode.B))SwitchWithKeyTo(craftUI);if (Input.GetKeyDown(KeyCode.K))SwitchWithKeyTo(skillTreeUI);if (Input.GetKeyDown(KeyCode.I))SwitchWithKeyTo(optionsUI);}public void SwitchTo(GameObject _menu)// 该方法用于切换到指定的UI界面{for (int i 0; i transform.childCount; i)//遍历当前UI对象的所有子物体{transform.GetChild(i).gameObject.SetActive(false);//遍历并隐藏所有子元素,确保了在显示新的UI界面时所有其他的UI界面都会被隐藏}if (_menu ! null)//传入的菜单不为空{_menu.SetActive(true);//显示}}public void SwitchWithKeyTo(GameObject _menu)//处理切换UI的逻辑{if (_menu ! null _menu.activeSelf)// UI界面已经显示隐藏, 如果目标UI界面未显示调用 SwitchTo 显示。{_menu.SetActive(false);return;}SwitchTo(_menu);}
}