using System; using System.Collections; using System.Collections.Generic; using UnityEngine; namespace BITKit.WorldNode { public sealed class UnityNode : MonoBehaviour,IWorldNode { [SerializeReference, SubclassSelector] private IWorldNodeService worldNodeService = new WorldNodeService(); [SerializeReference, SubclassSelector] private IWorldNode worldNode; public int Id { get; set; } public object WorldObject { get => gameObject; set=>throw new InvalidOperationException("Cannot set WorldObject"); } private void Start() { if (worldNode is null) { Debug.LogWarning("WorldNode is null"); return; } Id = gameObject.GetInstanceID(); worldNode.Id = Id; worldNode.WorldObject = gameObject; worldNodeService.RegisterNode(worldNode); worldNode.Initialize(); Destroy(this); } } }