|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- using UnityEngine;
-
- namespace Svelto.ES
- {
- public class UnityEnginesRoot : INodeEnginesRoot
- {
- public void AddEngine(IEngine engine)
- {
- _engineRoot.AddEngine(engine);
- }
-
- public void Add(INode node)
- {
- _engineRoot.Add(node);
- }
-
- public void Remove(INode node)
- {
- _engineRoot.Remove(node);
- }
-
- public void AddGameObjectEntity(GameObject entity)
- {
- #if UNITY_5_0
- INodeHolder[] nodeHolders = entity.GetComponents<INodeHolder>();
-
- for (int i = 0; i < nodeHolders.Length; i++)
- nodeHolders[i].engineRoot = this;
- #else
- MonoBehaviour[] nodeHolders = entity.GetComponents<MonoBehaviour>();
-
- for (int i = 0; i < nodeHolders.Length; i++)
- {
- var nodeHolder = nodeHolders[i];
-
- if (nodeHolder is INodeHolder)
- (nodeHolders[i] as INodeHolder).engineRoot = this;
- }
- #endif
-
- }
-
- public void RemoveGameObjectEntity(GameObject entity)
- {
- #if UNITY_5_0
- INodeHolder[] nodeHolders = entity.GetComponents<INodeHolder>();
-
- for (int i = 0; i < nodeHolders.Length; i++)
- Remove(nodeHolders[i].node);
- #else
- MonoBehaviour[] nodeHolders = entity.GetComponents<MonoBehaviour>();
-
- for (int i = 0; i < nodeHolders.Length; i++)
- {
- var nodeHolder = nodeHolders[i];
-
- if (nodeHolder is INodeHolder)
- Remove((nodeHolder as INodeHolder).node);
- }
- #endif
- }
-
- EnginesRoot _engineRoot = new EnginesRoot();
- }
- }
|