“ScriptComponentBehaviour”的版本间的差异

来自骑砍中文百科
跳转至: 导航搜索
(创建页面,内容为“[https://docs.bannerlordmodding.com/_csharp-api/engine/scriptcomponentbehaviour.html <big>访问源文档</big>]<br> 骑马与砍杀2:霸主 MOD API|<big>返回…”)
 
(已保护“ScriptComponentBehaviour”([编辑=仅允许管理员](无限期)[移动=仅允许管理员](无限期)))
 
(没有差异)

2020年4月24日 (五) 23:46的最新版本

访问源文档
返回目录

ScriptComponentBehaviours 可以用来做任何事,比如风车动画、创建一个自定义武器的生成点,甚至是攻城器械。
一个 ScriptComponentBehaviours 的基本示例就是 TaleWorlds.MountAndBlade.dll 中的 LumberJack 类:

    public class Lumberjack : ScriptComponentBehaviour
    {
        private bool _initialized;

        protected internal override void OnTick(float dt)
        {
            base.OnTick(dt);
            if (!this._initialized)
            {
                this._initialized = true;
                base.GameEntity.CreateSimpleSkeleton("human_skeleton");
                base.GameEntity.CopyComponentsToSkeleton();
                base.GameEntity.Skeleton.SetAnimationAtChannel("lumberjack", 0, 1f, -1f, 0f);
                MetaMesh copy = MetaMesh.GetCopy("peasent_hatchet", true, false);
                base.GameEntity.AddMultiMeshToSkeletonBone(copy, 27);
            }
        }
    }

注:在这里复写 OnInit()OnTick() 更好,由于 TaleWorlds 是这样写的,所以这个例子暂时保持原样。
可能的原因:Meshes 在OnInit中不能够进行编辑设置等操作,你必须要等待至少一个Tick,否则游戏会崩溃。