mirror of
https://github.com/Alex-Rachel/TEngine.git
synced 2025-08-07 16:45:10 +00:00
Update
Update
This commit is contained in:
@@ -40,6 +40,12 @@ namespace TEngine
|
||||
});
|
||||
Entity.Destroy(entity);
|
||||
Entity.Destroy(entity2);
|
||||
|
||||
|
||||
TimerMgr.Instance.AddTimer(objects =>
|
||||
{
|
||||
Start();
|
||||
}, 3f);
|
||||
}), 3f,false);
|
||||
}
|
||||
|
||||
|
@@ -12,7 +12,7 @@ namespace TEngine.EntityModule
|
||||
public int InstanceId
|
||||
{
|
||||
get;
|
||||
protected set;
|
||||
set;
|
||||
}
|
||||
|
||||
internal int HashCode
|
||||
@@ -30,8 +30,6 @@ namespace TEngine.EntityModule
|
||||
public EcsObject()
|
||||
{
|
||||
HashCode = GetType().GetHashCode();
|
||||
InstanceId = EntitySystem.Instance.CurInstanceId;
|
||||
EntitySystem.Instance.CurInstanceId++;
|
||||
}
|
||||
|
||||
public virtual void Dispose()
|
||||
|
@@ -27,7 +27,11 @@ namespace TEngine.EntityModule
|
||||
private EntitySystem()
|
||||
{
|
||||
GameEventMgr.Instance.AddEventListener<int,Action<EcsObject>>(EntityEvent.AttachToEntity, AttachToEntity);
|
||||
Update(true);
|
||||
//Update(true);
|
||||
MonoUtility.AddUpdateListener((() =>
|
||||
{
|
||||
Update(false);
|
||||
}));
|
||||
MonoUtility.AddFixedUpdateListener(FixedUpdate);
|
||||
MonoUtility.AddLateUpdateListener(LateUpdate);
|
||||
}
|
||||
@@ -59,17 +63,26 @@ namespace TEngine.EntityModule
|
||||
{
|
||||
if (stack.Count > 0)
|
||||
{
|
||||
return (T)stack.Pop();
|
||||
var poolObj = (T)stack.Pop();
|
||||
GenInstanceId(poolObj);
|
||||
return poolObj;
|
||||
}
|
||||
goto Instantiate;
|
||||
}
|
||||
stack = new Stack<EcsObject>();
|
||||
ObjectPool.Add(type, stack);
|
||||
Instantiate: T ecsObject = new T();
|
||||
EcsObjects.Add(ecsObject.InstanceId, ecsObject);
|
||||
GenInstanceId(ecsObject);
|
||||
return ecsObject;
|
||||
}
|
||||
|
||||
private void GenInstanceId(EcsObject ecsObject)
|
||||
{
|
||||
ecsObject.InstanceId = CurInstanceId;
|
||||
Instance.CurInstanceId++;
|
||||
EcsObjects.Add(ecsObject.InstanceId, ecsObject);
|
||||
}
|
||||
|
||||
internal void Push(EcsObject ecsObject)
|
||||
{
|
||||
int type = ecsObject.HashCode;
|
||||
|
Reference in New Issue
Block a user