37 lines
1.2 KiB
C#
37 lines
1.2 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|
|
|