【ゲームエンジン】Unity初心者質問スレBuild3at GAMEDEV【ゲームエンジン】Unity初心者質問スレBuild3 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト669:名前は開発中のものです。 20/02/24 18:39:11.38 B7d3DSpn.net 質問失礼します。 unity2dでtransform.translateでオブジェクトを移動させているのですが、左右に移動させたときにz座標が変動してしまいます。 何か考えられる理由はありませんか…? 670:名前は開発中のものです。 20/02/24 19:00:32.30 A6C4ojr1.net >>669 public function Translate(translation: Vector3, relativeTo: Space = Space.Self): void; public function Translate(x: float, y: float, z: float, relativeTo: Space = Space.Self): void; Translateはマニュアルでこうなっている ゆえにオーバーロードで2種類の動きをするということになっている デフォルト引数になってるのは無視していいので ポイントになるのは 1・Vector3を引数とした場合 2・x y z それぞれのfloatを引数とした場合 の2パターンがある 左右に移動させたい場合は x軸だけを変えればいいので Y軸かZ軸に余計な値が入っていればうまくいかない ※参考例 Vector3 tamesi = new Vector3(10.0f,0.0f,5.0f); とした場合 x軸だけじゃなくて、z軸にも値が入っているから動いちゃう Vector3 tamesi2 = new Vector3(10.0f,0.0f,0.0f); というやつを引数にすればいい 使用するときに transform.Translate(tamesi)とすればx軸とz軸に動くし transform.Translate(tamesi2)とすればx軸にしか動かない x,y,z 3つの値を使う場合も同様にYとZの値に注意する つまり、yとzに余計な値が入っていれば 上に動いたり、奥に動いたりするわけなんですけど この回答でいけますか? 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch