1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- 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.Clone(Id));
- }
- public virtual void OnSleep()
- {
- EventSystem.Instance.Publish( OnDestroyZoneObject.Clone(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]
- public class AfterCreateCurrentScene_Battle : BEvent<AfterCreateCurrentScene>
- {
- protected override async ETTask OnEvent(AfterCreateCurrentScene a)
- {
- _CurrentSceneCache = a.scene;
- await ETTask.CompletedTask;
- }
- }
- //TODO:监听场景退出事件
- }
|