using UnityEngine; [ExecuteAlways] public class Node : MonoBehaviour { [Range(-1, 1)] [SerializeField] public int Owner = -1; public Material materialOwnerSelf, materialOwnerOther, materialOwnerNone; void Awake() { UpdateColor(); } // Start is called once before the first execution of Update after the MonoBehaviour is created void Start() { } // Update is called once per frame void Update() { UpdateTransform(); } private void OnValidate() { UpdateColor(); UpdateTransform(); } public void UpdateTransform() { transform.localPosition = transform.localPosition.normalized * 20f; transform.forward = transform.position; } public void UpdateColor() { switch (Owner) { case -1: transform.GetChild(0).GetComponent().sharedMaterial = materialOwnerNone; break; case 0: transform.GetChild(0).GetComponent().sharedMaterial = materialOwnerSelf; break; case 1: transform.GetChild(0).GetComponent().sharedMaterial = materialOwnerOther; break; } } }