コード例 #1
0
    // Update is called once per frame
    void Update()
    {
        float inputX = Input.GetAxis("Horizontal");
        float inputY = Input.GetAxis("Vertical");

        if (inputY > 0)
        {
            dir = UDLRDirection.Up;
        }
        InputSelector(mode);
        if (inputY < 0)
        {
            dir = UDLRDirection.Down;
        }
        InputSelector(mode);

        if (inputX > 0)
        {
            dir = UDLRDirection.Right;
        }
        InputSelector(mode);
        if (inputX < 0)
        {
            dir = UDLRDirection.Left;
        }
        InputSelector(mode);

        if (inputY == 0 && inputX == 0)
        {
            dir = UDLRDirection.None;
        }
    }
コード例 #2
0
    void HandleInputsTranslate(UDLRDirection _dir)
    {
        switch (axis)
        {
        case UDLRAxis.XY:
            switch (_dir)
            {
            case UDLRDirection.Up:
                player.position += Vector3.up * speed * Time.deltaTime;
                break;

            case UDLRDirection.Down:
                player.position -= Vector3.up * speed * Time.deltaTime;
                break;

            case UDLRDirection.Left:
                player.position -= Vector3.right * speed * Time.deltaTime;
                break;

            case UDLRDirection.Right:
                player.position += Vector3.right * speed * Time.deltaTime;
                break;
            }
            break;

        case UDLRAxis.XZ:
            switch (_dir)
            {
            case UDLRDirection.Up:
                player.position += Vector3.forward * speed * Time.deltaTime;
                break;

            case UDLRDirection.Down:
                player.position -= Vector3.forward * speed * Time.deltaTime;
                break;

            case UDLRDirection.Left:
                player.position -= Vector3.right * speed * Time.deltaTime;
                break;

            case UDLRDirection.Right:
                player.position += Vector3.right * speed * Time.deltaTime;
                break;
            }
            break;

        case UDLRAxis.YZ:
            break;
        }
    }
コード例 #3
0
    void HandleInptusRigidbody(UDLRDirection _dir)
    {
        switch (axis)
        {
        case UDLRAxis.XY:
            switch (_dir)
            {
            case UDLRDirection.Up:
                rigid.AddForce(Vector3.up * speed, ForceMode.Impulse);
                break;

            case UDLRDirection.Down:
                rigid.AddForce(-Vector3.up * speed, ForceMode.Impulse);
                break;

            case UDLRDirection.Left:
                rigid.AddForce(-Vector3.right * speed, ForceMode.Impulse);
                break;

            case UDLRDirection.Right:
                rigid.AddForce(Vector3.right * speed, ForceMode.Impulse);
                break;
            }
            break;

        case UDLRAxis.XZ:
            switch (_dir)
            {
            case UDLRDirection.Up:
                rigid.AddForce(Vector3.forward * speed, ForceMode.Impulse);
                break;

            case UDLRDirection.Down:
                rigid.AddForce(-Vector3.forward * speed, ForceMode.Impulse);
                break;

            case UDLRDirection.Left:
                rigid.AddForce(-Vector3.right * speed, ForceMode.Impulse);
                break;

            case UDLRDirection.Right:
                rigid.AddForce(Vector3.right * speed, ForceMode.Impulse);
                break;
            }
            break;

        case UDLRAxis.YZ:
            break;
        }
    }