void MoveEvent(Vector3 direction) { if (mLoginModule.mRoleID == mBodyIdent.GetObjectID()) { // Handle your custom input here... { { if (mKernelModule.QueryPropertyInt(mBodyIdent.GetObjectID(), NFrame.Player.HP) > 0) { //人工ui输入的,需要和摄像机进行校正才是世界坐标 // Transform moveDirection vector to be relative to camera view direction if (Camera.main) { if (direction != Vector3.zero) { if (CheckMove()) { Vector3 vDirection = direction.relativeTo(Camera.main.transform); mHeroMotor.MoveTo(this.transform.position + vDirection.normalized * 2); } } } } } } } }
void Start() { mStateMachineMng = GetComponent <NFAnimaStateMachine>(); mBodyIdent = GetComponent <NFBodyIdent>(); mHeroMotor = GetComponent <NFHeroMotor>(); mUIModule = NFPluginManager.Instance().FindModule <NFUIModule>(); mLoginModule = NFPluginManager.Instance().FindModule <NFLoginModule>(); mKernelModule = NFPluginManager.Instance().FindModule <NFIKernelModule>(); mKernelModule.RegisterPropertyCallback(mBodyIdent.GetObjectID(), NFrame.Player.MOVE_SPEED, PropertyMoveSpeedHandler); mKernelModule.RegisterPropertyCallback(mBodyIdent.GetObjectID(), NFrame.Player.ATK_SPEED, PropertyAttackSpeedHandler); mHeroMotor.angularSpeed = 0f; }
private void Update() { if (mxBodyIdent && mxBodyIdent.GetObjectID() != mLoginModule.mRoleID) { NFHeroSyncBuffer.Keyframe keyframe = mxSyncBuffer.NextKeyframe(); if (keyframe != null) { NFAnimaStateType type = (NFrame.NFAnimaStateType)keyframe.status; switch (type) { case NFAnimaStateType.Run: case NFAnimaStateType.Idle: if (keyframe.Position != Vector3.zero) { mxHeroMotor.MoveTo(keyframe.Position, MeetGoalCallBack); } break; case NFAnimaStateType.Stun: mAnimatStateController.PlayAnimaState(NFAnimaStateType.Stun, 0); break; default: break; } } } }
void Start() { mAnima = GetComponent <NFAnimatStateController>(); mBodyIdent = GetComponent <NFBodyIdent>(); mAnimaStateMachine = GetComponent <NFAnimaStateMachine>(); mHeroInput = GetComponent <NFHeroInput>(); mHeroSync = GetComponent <NFHeroSync>(); mxGUID = mBodyIdent.GetObjectID(); moveDirection = new Vector3(); mKernelModule.RegisterPropertyCallback(mxGUID, NFrame.Player.MOVE_SPEED, PropertyEventHandler); }
private void FixedUpdate() { if (mxBodyIdent && mxBodyIdent.GetObjectID() != mLoginModule.mRoleID) { NFHeroSyncBuffer.Keyframe keyframe; if (mxSyncBuffer.Size() > 1) { keyframe = mxSyncBuffer.LastKeyframe(); mxHeroMotor.walkSpeed *= mxSyncBuffer.Size(); mxHeroMotor.runSpeed *= mxSyncBuffer.Size(); } else { keyframe = mxSyncBuffer.NextKeyframe(); mxHeroMotor.walkSpeed = mKernelModule.QueryPropertyInt(mLoginModule.mRoleID, NFrame.Player.MOVE_SPEED) / 100; mxHeroMotor.runSpeed = mKernelModule.QueryPropertyInt(mLoginModule.mRoleID, NFrame.Player.MOVE_SPEED) / 100; } if (keyframe != null) { NFAnimaStateType type = (NFrame.NFAnimaStateType)keyframe.status; switch (type) { case NFAnimaStateType.Run: case NFAnimaStateType.Idle: if (keyframe.Position != Vector3.zero) { mxHeroMotor.MoveTo(keyframe.Position, true, MeetGoalCallBack); } break; case NFAnimaStateType.Stun: mAnimatStateController.PlayAnimaState(NFAnimaStateType.Stun, 0); break; default: break; } } } }
private void Update() { if (mxBodyIdent && mxBodyIdent.GetObjectID() != mLoginModule.mRoleID) { NFHeroSyncBuffer.Keyframe keyframe = mxSyncBuffer.NextKeyframe(); if (keyframe != null) { NFAnimaStateType type = (NFrame.NFAnimaStateType)keyframe.status; switch (type) { case NFAnimaStateType.Run: case NFAnimaStateType.Idle: mxHeroMotor.MoveTo(keyframe.Position); break; default: break; } } } }
public override void OnCheckInput(GameObject gameObject) { if (mStateMachine.IsMainRole()) { //hp if (mKernelModule.QueryPropertyInt(xBodyIdent.GetObjectID(), NFrame.NPC.HP) <= 0) { return; } if (NFRoot.Instance().GetGameMode() == GAME_MODE.GAME_MODE_2D) { bool left = false; bool right = false; bool top = false; if (xHeroMotor.GetMoveDrictor().z > 0) { top = true; } if (xHeroMotor.GetMoveDrictor().x < 0) { left = true; xHeroMotor.ProcessInput(left, right, top); if (top) { mAnimatStateController.PlayAnimaState(NFAnimaStateType.JumpStart, -1); } else { mAnimatStateController.PlayAnimaState(NFAnimaStateType.Run, -1); } } else if (xHeroMotor.GetMoveDrictor().x > 0) { right = true; xHeroMotor.ProcessInput(left, right, top); if (top) { mAnimatStateController.PlayAnimaState(NFAnimaStateType.JumpStart, -1); } else { mAnimatStateController.PlayAnimaState(NFAnimaStateType.Run, -1); } } else { if (top) { xHeroMotor.ProcessInput(left, right, top); mAnimatStateController.PlayAnimaState(NFAnimaStateType.JumpStart, -1); } } } else { if (xHeroMotor.GetMoveDrictor() != Vector3.zero) { } } } }
private void FixedUpdate() { ReportPos(); if (mxBodyIdent && mxBodyIdent.GetObjectID() != mLoginModule.mRoleID) { NFHeroSyncBuffer.Keyframe keyframe; if (mxSyncBuffer.Size() > 1) { keyframe = mxSyncBuffer.LastKeyframe(); } else { keyframe = mxSyncBuffer.NextKeyframe(); } if (keyframe != null) { mxHeroMotor.walkSpeed = moveSpeed; mxHeroMotor.runSpeed = moveSpeed; float dis = Vector3.Distance(keyframe.Position, mxHeroMotor.transform.position); if (dis > 1f) { mxHeroMotor.walkSpeed = dis / SYNC_TIME; mxHeroMotor.runSpeed = dis / SYNC_TIME; } lastInterpolationTime = keyframe.InterpolationTime; NFAnimaStateType stateType = (NFrame.NFAnimaStateType)keyframe.status; switch (stateType) { case NFAnimaStateType.Run: if (keyframe.Position != Vector3.zero) { mxHeroMotor.MoveTo(keyframe.Position, true, MeetGoalCallBack); } break; case NFAnimaStateType.Idle: if (UnityEngine.Vector3.Distance(keyframe.Position, mxHeroMotor.transform.position) > 0.1f) { mxHeroMotor.MoveTo(keyframe.Position, true, MeetGoalCallBack); } else { mxHeroMotor.Stop(); } break; case NFAnimaStateType.Stun: mAnimatStateController.PlayAnimaState(NFAnimaStateType.Stun, 0); break; case NFAnimaStateType.NONE: mxHeroMotor.transform.position = keyframe.Position; break; default: break; } } } }
public NFGUID GetGUID() { return(xBodyIdent.GetObjectID()); }