private void CreateNpcImp(Transform bornNode, NpcQuestItemDTO taskItem, int taskIndex, GameObject followNode = null) { string npcId = taskItem.npcId; CampNpcItem campNpcItem = Global.gApp.gGameData.CampNpcConfig.Get(npcId); GameObject npcNode = Global.gApp.gResMgr.InstantiateObj(campNpcItem.NpcPath); npcNode.transform.SetParent(m_NpcNode, false); if (taskItem.state != NpcState.None) { Transform newBornNode = m_TaskNpcBronNode.transform.GetChild(m_TaskNpcBornNodeIndex); npcNode.transform.position = newBornNode.position; m_TaskNpcBornNodeIndex++; } else { Vector3 localScale = bornNode.localScale; float x = Random.Range(-0.5f, 0.5f); float y = Random.Range(-0.5f, 0.5f); Vector3 posOffset = new Vector3(localScale.x * x, localScale.y * y, 0); Vector3 position = bornNode.transform.position + posOffset; position.z = 0; npcNode.transform.position = position; } NpcBehavior npcBehavior = npcNode.GetComponent <NpcBehavior>(); npcBehavior.Init(taskItem, taskIndex); if (followNode != null) { FollowNode followComp = followNode.GetComponent <FollowNode>(); followComp.SetFloowNode(npcBehavior.GetTaskUINode()); npcBehavior.SetForceHasOutlineEffect(); } m_NpcBehav.Add(npcBehavior); }
public override void Init <T>(string name, UIInfo info, T arg) { base.Init(name, info, arg); m_NpcBehavior = arg as NpcBehavior; Canvas parentCanvas = GetComponentInParent <Canvas>(); RectTransform parentRectTsf = parentCanvas.GetComponent <RectTransform>(); m_AdaptNode.rectTransform.anchoredPosition = UiTools.WorldToRectPos(gameObject, m_NpcBehavior.GetTaskUINode().position, parentRectTsf); GenerateRecycleMat(); InitNode(); base.ChangeLanguage(); }