

下記のようなコードで、矢印キーでオブジェクトを動かせる状態になっています  
これを、上、下、右、左それぞれのボタンで動かせるようにしたいのですが、どのようにコードを編集すればいいのかいまいちわかりません  
教えてください

[code]

    public class OnKeyPress_Move : MonoBehaviour
    {
      public float speed = 2; 
    
      float vx = 0;
      float vy = 0;
    
      void Update()
      {
        vx = Input.GetAxisRaw("Horizontal") * speed;
        vy = Input.GetAxisRaw("Vertical") * speed;
      }
      private void FixedUpdate()
      {
        this.tranform.Translate(vx / 50, vy / 50, 0);
      }
    }
    
[/code]


CC BY-SA 4.0
2021-09-06T05:42:44.837
82280
2022-05-09T15:52:57.640
2021-09-06T05:46:59.200
3060
48078
question
c# unity3d unity2d
unity、C#にて、キーボードの矢印のキーによる操作をボタン操作に切り替えたい


Button の事を言っているのであれば、コードは大幅に変える必要があります。  
Button に EventTrigger コンポーネントをアタッチし、押している間は移動するようにしなければなりません。（OnClick でやってもダメ）

パッケージ:
[82280.unitypackage](https://www.dropbox.com/s/nvomscebfqzdyv5/82280.unitypackage?dl=1)

パッケージに含むコードは以下だけです。

[code]

    using UnityEngine;
    
    [RequireComponent(typeof(Rigidbody2D))]
    public class ButtonMovement : MonoBehaviour
    {
        [SerializeField] float _speed = 3f;
        Rigidbody2D _rb = default;
    
        void Start()
        {
            _rb = GetComponent<Rigidbody2D>();
        }
    
        public void Move(string dir)
        {
            Vector2 velo = Vector2.zero;
    
            switch (dir)
            {
                case "Right":
                    velo = Vector2.right;
                    break;
                case "Left":
                    velo = Vector2.left;
                    break;
                case "Up":
                    velo = Vector2.up;
                    break;
                case "Down":
                    velo = Vector2.down;
                    break;
                default:
                    break;
            }
    
            _rb.velocity = _speed * velo;
        }
    }
    
[/code]


CC BY-SA 4.0
2022-05-09T15:52:57.640
88736
2022-05-09T15:52:57.640
48297
82280
answer