[Unity] 平台游戏控制器 教程 个人学习笔记

【阿严】[Unity]平台跳跃游戏 角色控制器 教程合集 _ 状态机架构 B站视频教程

个人不完全学习笔记,个人目的:重复重点,记忆。

StateMachine
/// 状态机类 ,持有所有状态类,并实现状态的切换



PlayerState : ScriptableObject, IState /// /// 玩家状态类 /// 玩家状态的基类 用以更新和传递玩家状态 ///



GetComponentInChildren<T>() 是一个Unity引擎提供的泛型方法,它用于在当前对象及其子对象中查找并获取指定类型(T)的组件。如果在当前对象及其子对象中找到了指定类型的组件,该方法会返回第一个找到的组件;如果没有找到,方法会返回null。
与之相对的,GetComponent<T>() 方法只会在当前对象上查找指定类型的组件,而不会在其子对象中查找。
在你提供的这段代码中,作者使用了 GetComponentInChildren<Animator>() 方法来获取当前对象或其子对象中的Animator组件。这里使用 GetComponentInChildren 而不是 GetComponent 的原因可能是作者认为Animator组件可能不在当前对象上,而是在当前对象的子对象中。这种情况在Unity中是非常常见的,比如当你将动画控制器和角色模型分开放置时,通常会将Animator组件附加在子对象(如角色模型)上,而非父对象。
使用 GetComponentInChildren<T>() 方法可以确保在整个对象层级结构中查找并获取到所需的组件。然而,需要注意的是,相较于 GetComponent<T>()GetComponentInChildren<T>() 的性能开销会略大一些,因为它需要遍历当前对象的所有子对象。所以,在使用时要确保根据实际需求选择合适的方法。

posted @   专心Coding的程侠  阅读(58)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)

阅读目录(Content)

此页目录为空

点击右上角即可分享
微信分享提示