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);
    }