public static ShieldNode Add(GameObject pObj) { Debug.Assert(pObj != null); ShieldNodeManager pMan = ShieldNodeManager.PrivGetInstance(); Debug.Assert(pMan != null); // Take a node out from Reserve list. // This node is washed in BasePopNode(). ShieldNode pNode = (ShieldNode)pMan.BasePopNode(); Debug.Assert(pNode != null); pNode.Set(pObj); pMan.BaseSortedAdd(pNode); return(pNode); }