一个简单的ARPG角色框架
# 观前提醒 项目会在 GitHub 中开源,链接:https://github.com/Maikire/Unity/tree/main/UnityFramework/A simple ARPG character framework # 框架设计 角色状态类:角色的基础信息和基础行为(抽象类) 角色的动画:因为动画参数的名字可能会改变,所以单独做一个类储存名字 角色的移动方式:提供移动的方法,由输入控制类调用 输入控制:处理玩家的输入方式,例如:摇杆、键鼠、手柄......(本章以这个摇杆为例) 角色选择器(可选):选中目标后显示选中特效 # 代码 #...
more...一个简单的ARPG技能框架
# 观前提醒 项目会在 GitHub 中开源,链接:https://github.com/Maikire/Unity/tree/main/UnityFramework/A simple ARPG skill framework # 做框架之前的一些准备 在开始写框架之前需要有一些准备好的资源 # 角色 模型和动作 使用这个角色框架 基于动画事件行为类给动画添加事件 Animator 如图所示: # UI 使用这个 UI 框架 使用这个摇杆控制角色的移动 有关 UI 事件的代码在下文中会讲到 规定:按钮的名字必须是技能的 ID UI 如图所示: #...
more...协同程序(Coroutine)
# Unity 协同程序 (Coroutine). # 定义 具有多个返回点 (yield),可以在特定时机分步执行的函数。。 # 原理 协程运行在 Unity 的主线程中,Unity 每帧处理 GameObject 中的协同函数,直到函数执行完毕。 当一个协同函数启动时,本质是创建迭代器对象,调用 MoveNext () 方法,执行到 yield 暂时退出,待满足条件后再次调用 MoveNext () 方法,执行后续代码,直至遇到下一个 yield 为止,如此循环至整个函数结束。 # 作用 延时调用 分解操作 # 语法 通过 MonoBehaviour 中的 StartCoroutine...
more...枚举器(Enumerator)
# 枚举器 如果某个类没有实现接口 IEnumerable,当对这个类的对象使用 foreach 时,我们就会得到一个错误提示: 编译器错误 CS1579 若要使用 foreach 语句循环访问某个集合,该集合必须满足以下要求: 它必须是一个接口、类或结构。 它必须包含一个返回类型的公共 GetEnumerator 方法。 返回类型必须包含一个名为 Current 的公共属性和一个名为 MoveNext 的公共方法。 查找官方文档后发现: GetEnumerator 是在 IEnumerable 中定义的 Current 和 MoveNext 是在 IEnumerator 中定义的 #...
more...委托(Delegate)
# C# 委托(Delegate) C# 中的委托类似于 C 或 C++ 中函数的指针,但它是函数指针的 “升级版”。 委托是存有对某个方法的引用的一种引用类型变量,引用可在运行时被改变,可同时指向多个函数方法。 委托特别用于实现事件和回调方法。所有的委托都派生自 System.Delegate 类。 # 委托的声明 委托是一个类(类的声明可以在其他类的外面或里面) 类是数据类型,所以委托也是一种数据类型 声明的方式与一般的类不同 委托所封装的方法必须类型兼容 声明委托 // 委托的关键字:delegatepublic delegate string...
more...