123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- using CommonAI.ZoneClient;
- using CommonLang.Geometry;
- using ET;
- using ET.Client;
- using ET.EventType;
- public class BattleObject
- {
- public ZoneObject ZoneObject;
- public uint Id { get { return ZoneObject.ObjectID; } }
- public Vector3 LastPos = Vector3.Zero;
- public float LastRotation = 0;
- public BattleObject() { }
- public virtual void OnAwake(ZoneObject zo)
- {
- ZoneObject = zo;
- EventSystem.Instance.Publish(OnNewZoneObject.Static.Clone(Id));
- }
- public virtual void OnSleep()
- {
- EventSystem.Instance.Publish(CurrentScene, new OnDestroyZoneObject() { ObjectId = Id });
- ObjectPool.Instance.Recycle(this);
- }
- private static Scene _CurrentSceneCache = null;
- public static Scene CurrentScene
- {
- get
- {
- if (_CurrentSceneCache == null)
- {
- var cs = PlayerComponent.Instance.ClientScene();
- _CurrentSceneCache = cs.GetComponent<CurrentScenesComponent>()?.Scene;
- }
- return _CurrentSceneCache;
- }
- }
- [Event(SceneType.Current)]
- public class AfterCreateCurrentScene_Battle : AEvent<ET.EventType.AfterCreateCurrentScene>
- {
- protected override async ETTask Run(Scene scene, ET.EventType.AfterCreateCurrentScene args)
- {
- _CurrentSceneCache = scene;
- await ETTask.CompletedTask;
- }
- }
- //TODO:监听场景退出事件
- }
|