刚在我的《吸血鬼幸存者》Demo中做了一个简单的血条。
遇到了以下问题:
- C# 调用 xLua 的函数交互注册方式
- Unity 组件的挂载方式
- 动态实例化血条的方式
C# 调用 xLua 的函数交互注册方式
推荐的方式是全局共用一个 LuaEnv ,并在初始化 LuaEnv 以后通过 Setup 构建一个静态Util。
代码如下:
1 | using UnityEngine; |
Unity 组件的挂载方式
我刚才编写了一个 HPBar 用于显示特定战斗对象的血量。
某些固定的member可以直接在Inspector中手动关联。
某些动态的member则可以通过两种方式关联:
- 如果目标GameObject在Scene中固定存在 - 直接拖拽Prefab+手动关联。
- 需要动态创建GameObject - 实例化后通过代码设置关联。
动态实例化血条的方式
在本例中,血条本质上仍然是一个 GameObject 。
我们可以先创建血条所依赖的GameObject(比如敌人对象),然后再创建血条。
随后,我们获取血条的 HPBar 组件,并设置组件上的引用member,指向目标GameObject(敌人对象)。
完成以上操作后,一个血条的动态化绑定操作就完成了,剩下的就由 HPBar 内部的逻辑进行管理即可。