using Axibug; using Axibug.Event; using Axibug.Runtime; using System.Collections.Generic; using UnityEngine; namespace Game { public class MonsterRole : RoleBase { /// /// 初始化 /// /// public void Init(S_ROLE_MONSTER data) { base.Init(data); } protected override void OnEnable() { base.OnEnable(); AppEntry.Event.Subscribe(RoleDeadEventArgs.EventId, OnRoleDeadEventArgs); AppEntry.Event.Subscribe(RoleDeadAnimeEndEventArgs.EventId, OnRoleDeadAnimeEndEventArgs); } protected override void OnDisable() { base.OnDisable(); AppEntry.Event.Unsubscribe(RoleDeadEventArgs.EventId, OnRoleDeadEventArgs); AppEntry.Event.Unsubscribe(RoleDeadAnimeEndEventArgs.EventId, OnRoleDeadAnimeEndEventArgs); } public override void MeshChangeMoveState(bool ToMoveState) { if (ToMoveState) { Anime.StartRun(); } else { Anime.BackToIdle(); } } public override void Release() { } private void OnRoleDeadEventArgs(object sender, LogicEventArgs e) { RoleDeadEventArgs msg = (RoleDeadEventArgs)e; if (msg == null) throw new GameException("RoleDeadEventArgs is null"); if (msg.RoleID == RoleID) { //关闭碰撞盒 mselfCollider.enabled = false; //关闭受重力 mRigidbody.useGravity = false; } } private void OnRoleDeadAnimeEndEventArgs(object sender, LogicEventArgs e) { RoleDeadAnimeEndEventArgs msg = (RoleDeadAnimeEndEventArgs)e; if (msg == null) throw new GameException("RoleDeadAnimeEndEventArgs"); if (msg.RoleID == RoleID) { GamePlayEntry.RoleMgr.DestroyRole(this); } } } }