[過去ログ] 【ゲームエンジン】Unity初心者質問スレBuild3 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
668
(1): 名前は開発中のものです。 [sage] 2020/02/24(月) 18:39:11.38 ID:B7d3DSpn(1/4) AAS
質問失礼します。
unity2dでtransform.translateでオブジェクトを移動させているのですが、左右に移動させたときにz座標が変動してしまいます。
何か考えられる理由はありませんか…?
669
(1): 名前は開発中のものです。 [] 2020/02/24(月) 19:00:32.30 ID:A6C4ojr1(2/6) AAS
>>668

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に余計な値が入っていれば
上に動いたり、奥に動いたりするわけなんですけど
この回答でいけますか?
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.044s