53666


`Vector2 x = new Vector2(0.1f,0)`  
提示コード上部のこのコードなのですが0.1fを最上部に宣言しているspeed変数に置き換えて実行するとキーを押した瞬間座標がバグり動作しません、なぜなのでしょうか？また解決方法をおしえてくれますでしょうか？

[code]

    public class PlayerController : MonoBehaviour {
        public float speed = 0.1f;
        // Use this for initialization
        void Start () {
        }
    
        // Update is called once per frame
        void Update () {
            Vector2 x = new Vector2(0.1f,0);
            if(Input.GetKey(KeyCode.RightArrow)) {
                transform.Translate(Vector2.right * x);
            }
    
            if (Input.GetKey(KeyCode.LeftArrow)) {
                transform.Translate(Vector2.left * x);
            }
        }
    }
    
[/code]


CC BY-SA 4.0
2019-03-21T06:07:44.007
53614
2019-03-23T05:25:18.550
2019-03-23T05:25:18.550
29826
question
unity2d
Unity2D マジックナンバーのとある場所を変数に置き換えると値がバグる原因が知りたい


スクリプトをそのままコピーして試してみましたが問題なく動きました。

質問者さんの言っている0.1fを最上部に宣言しているspeed変数に置き換えるというのは以下の解釈で合っているでしょうか？  
`Vector2 x = new Vector2(speed,0);`

もしそうだとしたら、質問者さんが作成した別のスクリプトなどの影響の可能性もありますし、動作環境の問題もあるかもしれません。追記をお願いします。また、このスクリプトを作成するのに参考にしているサイトがあるならそれも追記してください。

ちなみに私の動作環境はMacでUnity 2018.3.9f1を使用しております。


CC BY-SA 4.0
2019-03-23T05:23:18.447
53666
2019-03-23T05:23:18.447
31396
53614
answer