public void AddChildNode <T>(Vector2 initPos) where T : LogicNode { GameObject nodeObj = new GameObject(typeof(T).Name); nodeObj.transform.parent = transform; nodeObj.transform.localPosition = Vector3.zero; LogicNode node = nodeObj.AddComponent <T>(); node.NodeName = nodeObj.name; node.Position = initPos; #if UNITY_EDITOR node.OnCreatedInEditor(); #endif nodeList.Add(node); }