前提・実現したいこと
unity,2Dでプレイヤーが操作する自機が
画面外に出ないようにしたいのですが、自機が動くだけで
画面外に出てしまいます。お知恵をお借りしたいです……。
発生している問題・エラーメッセージ
UnityEngine.Vector2からfloatへ変換することができません。 などがでたり、あと、画面サイズを取得した方がいいとは思うんですが 取得する方法が分かりません…。 上記に描いた自機を画面外に出さない方法を知りたいです。。。
該当のソースコード
unity,2D,C#を使用
1 2using System.Collections; 3 4using System.Collections.Generic; 5 6using UnityEngine; 7 8public class player : MonoBehaviour 9 10{ 11 12 //移動スピード 13 14 public float speed = 5; 15 16 // Use this for initialization 17 18 void Start() 19 20 { 21 22 } 23 24 // Update is called once per frame 25 26 void Update() 27 28 { 29 30 var w = Screen.width; 31 32 var h = Screen.height; 33 34 // 右・左 35 36 float x = Input.GetAxisRaw("Horizontal"); 37 38 // 上・下 39 40 float y = Input.GetAxisRaw("Vertical"); 41 42 //移動する向き 43 44 Vector2 dir = new Vector2( x, y); 45 46 47 //移動する向きとスピード代入 48 49 GetComponent<Rigidbody2D>().velocity = Mathf.Clamp(dir, x, y) * speed; 50 51 52 } 53 54}``` 55 56### 試したこと 57 58Screen.widthを入れる箱をfloatにしたりしました。 59dirにxとyを入れるときに、x,yのところをMathf.Clampを使ったりしました。 60 61### 補足情報(FW/ツールのバージョンなど) 62ツールはマイクロソフトヴィジュアルスタジオです。 63一応、画面のサイズは2.4です。よろしくお願いいたします…。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/25 13:56