private void OnClassNPCEventHandler(NFGUID self, int nContainerID, int nGroupID, NFIObject.CLASS_EVENT_TYPE eType, string strClassName, string strConfigIndex) { if (eType == NFIObject.CLASS_EVENT_TYPE.OBJECT_CREATE) { string strConfigID = mKernelModule.QueryPropertyString(self, NFrame.NPC.ConfigID); NFVector3 vec3 = mKernelModule.QueryPropertyVector3(self, NFrame.NPC.Position); Vector3 vec = new Vector3(); vec.x = vec3.X(); vec.y = vec3.Y(); vec.z = vec3.Z(); string strPrefabPath = ""; if (strConfigID.Length <= 0) { strPrefabPath = mElementModule.QueryPropertyString("Enemy", NPC.Prefab); } else { strPrefabPath = mElementModule.QueryPropertyString(strConfigID, NPC.Prefab); } GameObject xNPC = CreateObject(self, strPrefabPath, vec, strClassName); if (xNPC == null) { Debug.LogError("Create GameObject fail in " + strConfigID + " " + strPrefabPath); return; } xNPC.name = strConfigIndex; xNPC.transform.Rotate(new Vector3(0, 90, 0)); NFBodyIdent xBodyIdent = xNPC.GetComponent <NFBodyIdent>(); if (null != xBodyIdent) {//不能没有 xBodyIdent.enabled = true; xBodyIdent.SetObjectID(self); xBodyIdent.cnfID = strConfigID; } else { Debug.LogError("No 'BodyIdent' component in " + strConfigID + " " + strPrefabPath); } InitPlayerComponent(self, xNPC, false); } else if (eType == NFIObject.CLASS_EVENT_TYPE.OBJECT_LOADDATA) { } else if (eType == NFIObject.CLASS_EVENT_TYPE.OBJECT_DESTROY) { DestroyObject(self); } else if (eType == NFIObject.CLASS_EVENT_TYPE.OBJECT_CREATE_FINISH) { //NFCKernelModule.Instance.RegisterPropertyCallback(self, NFrame.Player.PrefabPath, OnClassPrefabEventHandler); } }
private void OnClassPlayerEventHandler(NFGUID self, int nContainerID, int nGroupID, NFIObject.CLASS_EVENT_TYPE eType, string strClassName, string strConfigIndex) { if (eType == NFIObject.CLASS_EVENT_TYPE.OBJECT_CREATE) { Debug.Log("OBJECT_CREATE:" + self.ToString()); string strConfigID = mKernelModule.QueryPropertyString(self, NFrame.Player.ConfigID); Vector3 vec = new Vector3(); NFVector3 vector3 = mKernelModule.QueryPropertyVector3(self, NFrame.Player.Position); //vec.x = vector3.X(); //vec.y = vector3.Y(); //vec.z = vector3.Z(); //MainPlayer string strPrefabPath = "Player/AIThirdPersonController"; if (self == mLoginModule.mRoleID) { strPrefabPath = "Player/ThirdPersonController"; } //if (strConfigID.Length <= 0) //{ // strPrefabPath = NFCElementModule.Instance().QueryPropertyString("Player", "Prefab"); //} //else //{ // strPrefabPath = NFCKernelModule.Instance.GetElementModule().QueryPropertyString(strConfigID, "Prefab"); //} //CreateObject(self, strPrefabPath, vec, strClassName); GameObject perfb = Resources.Load <GameObject>(strPrefabPath); GameObject player = GameObject.Instantiate(perfb); mGameObjectMap.Add(self, player); GameObject.DontDestroyOnLoad(player); player.name = self.ToString(); player.transform.position = vec; //MainPlayer if (self == mLoginModule.mRoleID) { player.AddComponent <MainPlayer>(); } else { player.AddComponent <OtherPlayer>(); } } else if (eType == NFIObject.CLASS_EVENT_TYPE.OBJECT_DESTROY) { //DestroyObject(transform.Find(self.ToString())); GameObject go = GetObject(self); if (go != null) { mGameObjectMap.Remove(self); GameObject.DestroyObject(go); } } }