Esempio n. 1
0
 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);
                             }
                         }
                     }
                 }
             }
         }
     }
 }
Esempio n. 2
0
    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;
    }
Esempio n. 3
0
    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;
                }
            }
        }
    }
Esempio n. 4
0
    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);
    }
Esempio n. 5
0
    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;
                }
            }
        }
    }
Esempio n. 6
0
    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;
                }
            }
        }
    }
Esempio n. 7
0
    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)
                {
                }
            }
        }
    }
Esempio n. 8
0
    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;
                }
            }
        }
    }
Esempio n. 9
0
 public NFGUID GetGUID()
 {
     return(xBodyIdent.GetObjectID());
 }