示例#1
0
        public override bool Check()
        {
            if (Input.GetKey(KeyCode.W))
            {
                _keyOpt = KeyOpt.GetKeyW;
                _database.SetData <KeyOpt>(_dataName, _keyOpt);
                return(true);
            }

            if (Input.GetKey(KeyCode.S))
            {
                _keyOpt = KeyOpt.GetKeyS;
                _database.SetData <KeyOpt>(_dataName, _keyOpt);
                return(true);
            }

            if (Input.GetKey(KeyCode.A))
            {
                _keyOpt = KeyOpt.GetKeyA;
                _database.SetData <KeyOpt>(_dataName, _keyOpt);
                return(true);
            }

            if (Input.GetKey(KeyCode.D))
            {
                _keyOpt = KeyOpt.GetKeyD;
                _database.SetData <KeyOpt>(_dataName, _keyOpt);
                return(true);
            }

            return(false);
        }
示例#2
0
        public override bool Check()
        {
            if (Input.GetKey(KeyCode.W))
            {
                _keyOpt = KeyOpt.GetKeyW;
                _database.SetData<KeyOpt>(_dataName, _keyOpt);
                return true;
            }

            if (Input.GetKey(KeyCode.S))
            {
                _keyOpt = KeyOpt.GetKeyS;
                _database.SetData<KeyOpt>(_dataName, _keyOpt);
                return true;
            }

            if (Input.GetKey(KeyCode.A))
            {
                _keyOpt = KeyOpt.GetKeyA;
                _database.SetData<KeyOpt>(_dataName, _keyOpt);
                return true;
            }

            if (Input.GetKey(KeyCode.D))
            {
                _keyOpt = KeyOpt.GetKeyD;
                _database.SetData<KeyOpt>(_dataName, _keyOpt);
                return true;
            }

            return false;
        }
示例#3
0
        protected override BTResult Execute()
        {
            KeyOpt keyOpt = KeyOpt.None;

            if (_dataReadOpt == BTDataReadOpt.ReadEveryTick)
            {
                keyOpt = _database.GetData <KeyOpt>(BTConditionOpt.KeyCode.ToString());
            }

            switch (keyOpt)
            {
            case KeyOpt.GetKeyW:
                _trans.eulerAngles = new Vector3(euler.x, 0, euler.z);
                _trans.Translate(Vector3.back * Time.deltaTime * _moveSpeed);
                break;

            case KeyOpt.GetKeyS:
                _trans.eulerAngles = new Vector3(euler.x, euler.y + 180, euler.z);
                _trans.Translate(Vector3.back * Time.deltaTime * _moveSpeed);
                break;

            case KeyOpt.GetKeyA:
                _trans.eulerAngles = new Vector3(euler.x, euler.y + 90, euler.z);
                _trans.Translate(Vector3.back * Time.deltaTime * _moveSpeed);
                break;

            case KeyOpt.GetKeyD:
                _trans.eulerAngles = new Vector3(euler.x, euler.y - 90, euler.z);
                _trans.Translate(Vector3.back * Time.deltaTime * _moveSpeed);
                break;

            case KeyOpt.MovingJoyStick:
                MovingJoystick move = _database.GetData <MovingJoystick>("MovingJoystick");
                if (move != null)
                {
                    ////获取摇杆偏移量
                    //float joyPositionX = move.joystickAxis.x;
                    //float joyPositionY = move.joystickAxis.y;
                    //if (joyPositionY != 0 || joyPositionX != 0)
                    //{
                    //    //设置角色的朝向(朝向当前坐标+摇杆偏移量)
                    //    _trans.LookAt(new Vector3(_trans.position.x + joyPositionX, _trans.position.y, _trans.position.z + joyPositionY));
                    //    //移动玩家的位置(按朝向位置移动)
                    //    _trans.Translate(-Vector3.forward * Time.deltaTime * _moveSpeed);
                    //}

                    float angle = move.Axis2Angle(true);
                    _trans.rotation = Quaternion.Euler(new Vector3(0, angle, 0));
                    //_trans.Translate(Vector3.back * Time.deltaTime * _moveSpeed);

                    var controller = BTCharacator.CharacController;
                    if (controller != null)
                    {
                        var direction = _trans.TransformDirection(Vector3.back);
                        controller.Move(direction * Time.deltaTime * _moveSpeed);
                    }

                    UpdateGravity();
                }
                break;

            case KeyOpt.MouseDown0:
                return(BTResult.Failed);
            }

            return(BTResult.Running);
        }