private void ViewSyncFromPC(Vector3 cameraPos, Vector3 cameraRot, Vector3 modelPos, Vector3 modelRot, Vector3 modelScale) { NFHeroCameraFollow controller = mMainCamera.GetComponent <NFHeroCameraFollow>(); controller.MoveTo(cameraPos, cameraRot); Vector3 newModelPos = new Vector3(modelPos.x, modelPos.y, modelPos.z); Vector3 newModelRot = new Vector3(modelRot.x, modelRot.y, modelRot.z); transform.position = newModelPos; transform.eulerAngles = newModelRot; }
public void LoadSceneEnd(int nSceneID) { if (!mbInitSend) { mbInitSend = true; //NFNetController.Instance.mxNetSender.RequireEnterGameFinish (NFNetController.Instance.xMainRoleID); } if (false == mbLoadedScene) { return; } BeforeLoadSceneEnd(nSceneID); mbLoadedScene = false; //主角贴地,出生点 /* * GameObject xGameObject = (GameObject)mhtObject[mLoginModule.mRoleID]; * if (null != xGameObject) * { * xGameObject.transform.position = mvSceneBornPos; * //xGameObject.GetComponent<NFCStateMachineMng> ().ChangeState (NFAnimaStateType.Idle); * } */ GameObject xGameObject = (GameObject)mhtObject[mLoginModule.mRoleID]; foreach (Transform child in xGameObject.GetComponentsInChildren <Transform>()) { if (child.name.Contains("Shadow")) { child.GetComponent <MeshRenderer>().enabled = false; } if (child.name.Contains("Hero001")) { foreach (Transform grandchild in child.GetComponentsInChildren <Transform>()) { if (!grandchild.name.Contains("Shadow")) { continue; } } } } GameObject xModelGameObject = new GameObject(); xModelGameObject.transform.parent = xGameObject.transform.parent; Transform shadow = GetChild(xGameObject.transform, "Shadow (1)"); shadow.gameObject.GetComponent <MeshRenderer>().enabled = false; Transform heroMesh = GetChild(xGameObject.transform, "Customer"); heroMesh.gameObject.GetComponent <SkinnedMeshRenderer>().enabled = false; // xGameObject.GetComponent<MeshRenderer>().enabled = false; InitCadModel(xModelGameObject); mModelObject = xModelGameObject; NFHeroCameraFollow xHeroCameraFollow = Camera.main.GetComponent <NFHeroCameraFollow>(); if (!xHeroCameraFollow) { xHeroCameraFollow = Camera.main.GetComponentInParent <NFHeroCameraFollow>(); } xHeroCameraFollow.SetPlayer(mModelObject.transform); NFMsg.ESceneType nType = (NFMsg.ESceneType)mElementModule.QueryPropertyInt(nSceneID.ToString(), NFrame.Scene.Type); mUIModule.CloseAllUI(); mUIModule.ShowUI <NFUIMain>(); // mUIModule.ShowUI<NFUIEstateBar>(); mUIModule.ShowUI <NFUIJoystick>(); Debug.Log("LoadSceneEnd: " + nSceneID + " " + nType); }
private void OnConfigIDChangeHandler(NFGUID self, string strProperty, NFDataList.TData oldVar, NFDataList.TData newVar, Int64 reason) { Vector3 vec = GetRenderObjectPosition(self); DestroyObject(self); if (vec.Equals(Vector3.zero)) { NFVector3 vec3 = mKernelModule.QueryPropertyVector3(self, NPC.Position); vec.x = vec3.X(); vec.y = vec3.Y(); vec.z = vec3.Z(); } string strCnfID = newVar.StringVal(); string strPrefabPath = mElementModule.QueryPropertyString(strCnfID, NPC.Prefab); if (strPrefabPath.Length <= 0) { strPrefabPath = mElementModule.QueryPropertyString("DefaultObject", NPC.Prefab); } GameObject xPlayer = CreateObject(self, strPrefabPath, vec, NFrame.Player.ThisName); if (xPlayer) { xPlayer.name = NFrame.Player.ThisName; xPlayer.transform.Rotate(new Vector3(0, 90, 0)); NFBodyIdent xBodyIdent = xPlayer.GetComponent <NFBodyIdent>(); if (null != xBodyIdent) {//不能没有 xBodyIdent.enabled = true; xBodyIdent.SetObjectID(self); xBodyIdent.cnfID = strCnfID; } else { Debug.LogError("No 'BodyIdent' component in " + strPrefabPath); } if (self == mLoginModule.mRoleID) { InitPlayerComponent(self, xPlayer, true); } else { InitPlayerComponent(self, xPlayer, false); } if (Camera.main && self == mLoginModule.mRoleID) { NFHeroCameraFollow xHeroCameraFollow = Camera.main.GetComponent <NFHeroCameraFollow>(); if (!xHeroCameraFollow) { xHeroCameraFollow = Camera.main.GetComponentInParent <NFHeroCameraFollow>(); } xHeroCameraFollow.SetPlayer(xPlayer.transform); } Debug.Log("Create Object successful" + NFrame.Player.ThisName + " " + vec.ToString() + " " + self.ToString()); } else { Debug.LogError("Create Object failed" + NFrame.Player.ThisName + " " + vec.ToString() + " " + self.ToString()); } }
public void InitPlayerComponent(NFGUID xID, GameObject self, bool bMainRole) { if (null == self) { return; } if (!self.GetComponent <Rigidbody>()) { self.AddComponent <Rigidbody>(); } if (!self.GetComponent <NFHeroSyncBuffer>()) { self.AddComponent <NFHeroSyncBuffer>(); } if (!self.GetComponent <NFHeroSync>()) { self.AddComponent <NFHeroSync>(); } NFHeroInput xInput = self.GetComponent <NFHeroInput>(); if (!xInput) { xInput = self.AddComponent <NFHeroInput>(); } if (bMainRole) { xInput.enabled = true; xInput.SetInputEnable(true); } else { xInput.enabled = false; xInput.SetInputEnable(false); } if (!self.GetComponent <GroundDetection>()) { GroundDetection groundDetection = self.AddComponent <GroundDetection>(); groundDetection.enabled = true; groundDetection.groundMask = -1; } if (!self.GetComponent <CharacterMovement>()) { CharacterMovement characterMovement = self.AddComponent <CharacterMovement>(); characterMovement.enabled = true; } if (!self.GetComponent <NFHeroMotor>()) { NFHeroMotor xHeroMotor = self.AddComponent <NFHeroMotor>(); xHeroMotor.enabled = true; } if (!self.GetComponent <NFAnimatStateController>()) { NFAnimatStateController xHeroAnima = self.AddComponent <NFAnimatStateController>(); xHeroAnima.enabled = true; } if (!self.GetComponent <NFAnimaStateMachine>()) { NFAnimaStateMachine xHeroAnima = self.AddComponent <NFAnimaStateMachine>(); xHeroAnima.enabled = true; } if (bMainRole) { if (Camera.main) { NFHeroCameraFollow xHeroCameraFollow = Camera.main.GetComponent <NFHeroCameraFollow>(); if (!xHeroCameraFollow) { xHeroCameraFollow = Camera.main.GetComponentInParent <NFHeroCameraFollow>(); } xHeroCameraFollow.target = self.transform; } CapsuleCollider xHeroCapsuleCollider = self.GetComponent <CapsuleCollider>(); xHeroCapsuleCollider.isTrigger = false; } else { CapsuleCollider xHeroCapsuleCollider = self.GetComponent <CapsuleCollider>(); Rigidbody rigidbody = self.GetComponent <Rigidbody>(); string configID = mKernelModule.QueryPropertyString(xID, NFrame.IObject.ConfigID); NFMsg.ENPCType npcType = (NFMsg.ENPCType)mElementModule.QueryPropertyInt(configID, NFrame.NPC.NPCType); //NFMsg.esub npcSubType = (NFMsg.ENPCType)mElementModule.QueryPropertyInt(configID, NFrame.NPC.NPCSubType); if (npcType == NFMsg.ENPCType.TurretNpc) { //is trigger must false if it is a building // and the kinematic must true xHeroCapsuleCollider.isTrigger = false; //rigidbody.isKinematic = true; //rigidbody.useGravity = true; rigidbody.mass = 10000; } else { xHeroCapsuleCollider.isTrigger = true; } } }