Example #1
0
        // --------------------------------------------------------------------------------------------
        private void Awake()
        {
            if (Instance)
            {
                Debug.LogError("Only one PlayerActor can exist at a time!");
                Destroy(gameObject);
                return;
            }

            Instance = this;
            MoveMode = EMoveMode.FreeMove;
        }
Example #2
0
    //カーソル移動させたいときはこれを使用してください。
    public void MovePointer(EMoveMode mode, Vector3 point)
    {
        moveMode  = mode;
        goalPoint = point;

        if (moveMode != EMoveMode.NORMAL)
        {
            abnormalMoveTimer = 0.3f;
        }

        //SE
        if (BGMManager.Instance != null)
        {
            BGMManager.Instance.PlaySE("Cursor_Move");
        }
    }
Example #3
0
    private float abnormalMoveTimer;    //ノーマル以外の時に使用される


    // Use this for initialization
    void Awake()
    {
        moveMode          = EMoveMode.NORMAL;
        abnormalMoveTimer = 0.0f;
        goalPoint         = transform.position;

        Vector2 temp, temp2;

        temp.x = 0.09f - 0.045f + 0.1f;
        temp.y = 0.16f - 0.075f + 0.4f;

        temp2.x = 0.09f + 0.045f + 0.1f;
        temp2.y = 0.16f + 0.075f + 0.4f;

        transform.GetComponent <RectTransform>().anchorMin = temp;
        transform.GetComponent <RectTransform>().anchorMax = temp2;
    }
Example #4
0
    float GetMoveSpeedByMode(EMoveMode Mode)
    {
        switch (Mode)
        {
        case EMoveMode.Crouch:
            return(CrouchSpeed);

        case EMoveMode.Walk:
            return(WalkSpeed);

        case EMoveMode.Run:
            return(RunSpeed);

        default:
        case EMoveMode.None:
            return(0);
        }
    }
Example #5
0
        // --------------------------------------------------------------------------------------------
        private void SetMoveMode(EMoveMode moveMode)
        {
            if (moveMode == MoveMode)
            {
                return;
            }

            EMoveMode previousMode = MoveMode;

            MoveMode = moveMode;

            _playerHasTakenTacticalTurn = false;
            _tacticalTurnCooldownAnimation?.Stop();
            _tacticalTurnCooldownAnimation = null;

            _moveModeChanged?.Invoke(new MoveModeChangedInfo
            {
                previousMode = previousMode,
                currentMode  = MoveMode,
            });
        }
Example #6
0
    public void SetHorizontalDirection(Vector2 InputAxis, EMoveMode Mode = EMoveMode.None, float SpeedScalar = 1, bool UseLocalSpace = true)
    {
        // Cache input values (-1 to 1) ...
        float ForwardInput = InputAxis.y;
        float StrafeInput  = InputAxis.x;

        // Calculate local or world space directions ...
        Vector3 ForwardDir = (UseLocalSpace) ? this.transform.forward : Vector3.forward;
        Vector3 RightDir   = (UseLocalSpace) ? this.transform.right : Vector3.right;

        // Get movement direction ...
        Vector3 MoveDir = ForwardDir * ForwardInput + RightDir * StrafeInput;

        // Clamp direction so diagnols don't exceed a magnitude of 1 ...
        MoveDir = Vector3.ClampMagnitude(MoveDir, 1);

        // Apply ...
        Mode = (Mode == EMoveMode.None) ? MoveMode : Mode;
        float MoveSpeed = GetMoveSpeedByMode(Mode) * SpeedScalar;

        Velocity.x = MoveDir.x * MoveSpeed;
        Velocity.z = MoveDir.z * MoveSpeed;
    }
Example #7
0
    // Update is called once per frame
    void Update()
    {
        Vector3 addTempVec;

        addTempVec.x = addTempVec.y = addTempVec.z = 0.0f;
        goalPoint.z  = -1.0f;

        //ノーマルモード時のみ
        if (moveMode == EMoveMode.NORMAL)
        {
            transform.position += (goalPoint - transform.position) * 0.2f;
        }

        //カーソルが上下左右に一定時間移動する
        if (abnormalMoveTimer > 0.01f)
        {
            switch (moveMode)
            {
            case EMoveMode.UP:
                addTempVec.x = 0.0f;
                addTempVec.y = 150.0f;
                addTempVec.z = 0.0f;
                break;

            case EMoveMode.DOWN:
                addTempVec.x = 0.0f;
                addTempVec.y = -150.0f;
                addTempVec.z = 0.0f;
                break;

            case EMoveMode.RIGHT:
                addTempVec.x = 150.0f;
                addTempVec.y = 0.0f;
                addTempVec.z = 0.0f;
                break;

            case EMoveMode.LEFT:
                addTempVec.x = -150.0f;
                addTempVec.y = 0.0f;
                addTempVec.z = 0.0f;
                break;
            }
            transform.position += addTempVec * Time.deltaTime;
            abnormalMoveTimer  -= Time.deltaTime;

            //ノーマル状態へ復帰する時の処理
            if (abnormalMoveTimer <= 0.01f)
            {
                switch (moveMode)
                {
                case EMoveMode.UP:
                    addTempVec.x = 0.0f;
                    addTempVec.y = -150.0f;
                    addTempVec.z = 0.0f;
                    break;

                case EMoveMode.DOWN:
                    addTempVec.x = 0.0f;
                    addTempVec.y = 150.0f;
                    addTempVec.z = 0.0f;
                    break;

                case EMoveMode.RIGHT:
                    addTempVec.x = -150.0f;
                    addTempVec.y = 0.0f;
                    addTempVec.z = 0.0f;
                    break;

                case EMoveMode.LEFT:
                    addTempVec.x = 150.0f;
                    addTempVec.y = 0.0f;
                    addTempVec.z = 0.0f;
                    break;
                }
                transform.position = goalPoint + addTempVec;
                moveMode           = EMoveMode.NORMAL;
                abnormalMoveTimer  = 0.0f;
            }
        }
        else
        {
            //念のため
            moveMode          = EMoveMode.NORMAL;
            abnormalMoveTimer = 0.0f;
        }
    }
Example #8
0
    //----------------------------------------------------------------------

    #region Mono
    private void Awake()
    {
        CharController = GetComponent <CharacterController>();
        MoveMode       = EMoveMode.Walk;
    }
Example #9
0
 public void SetMoveMode(EMoveMode NewMode)
 {
     MoveMode = NewMode;
 }