#現状
現在unity&VScodeにて2Dゲームを作成しています。
オブジェクトAがオブジェクトBの位置を常に把握し、その位置関係によってAはサイズを変えるというプログラムを描きたいのですが、Bの座標は一度とったらその後いっさい変化しません。
#問題部分のコード
public class bPer : MonoBehaviour { //相手Bを取得 [SerializeField] GameObject npc; void Update() { //下のnp(相手Bの座標)が問題 Vector2 np = new Vector2 (npc.transform.position.x, npc.transform.position.y); //bp(自分Aの座標)はきちんとその時の座標をしめしてくれる Vector2 bp = transform.position; //自分Aと相手Bの位置関係を把握 float xb = np.x - bp.x; float yb = np.y - bp.y; //位置関係より、相手が右にいるなら右を向き、左なら左向きに if (xb >= 0) { this.transform.localScale = new Vector2( 4, 4 ); } if (xb < 0) { this.transform.localScale = new Vector2( -4, 4 ); } }
#試したこと
Debug.Logで確認してみたところ、bpは常に(0,0)(1,3)...というように移動してもその場の値を出してくれるのですが、npの方は最初の座標(3,5)から一切変化しません。
常に座標を知り、位置関係によってX方向のサイズ(見かけ上は向き)を変化させたいです。
よろしくお願いします。
#参考サイト
オブジェクトの座標の取得と変更
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/09 09:28