質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%

Q&A

解決済

1回答

6011閲覧

positionの変更する際に、子オブジェクトだと位置がずれる。

beginner_F

総合スコア12

0グッド

0クリップ

投稿2020/05/23 13:07

編集2020/05/23 13:08

Playerの操作する親オブジェクトに子オブジェクトとして追従して、上下左右に移動した際に、その方向により左向きであれば左側に親オブジェクトのサイズだけずれるというスクリプトを制作して、実際に確認したのですが何故か大きくずれて表示されてしまします。
子オブジェクトを親から取り出し、親と同じ階層に配置した場合は子にしていないので追従はしませんが、原点の座標をもとに上下左右にしっかりと移動してくれます。
解決方法などご指南よろしくお願いします。

以下コードになります。

public class Weapon : MyBaseClass { public GameObject Parent; State_2DA1 state; public Vector3 Parent_Size; int tmp_dire; Vector3 vec3; // Start is called before the first frame update void Start() { Parent = GetParent();// 親オブジェクトの取得 Parent_Size = GetObjectSize(Parent);//(0.32, 0.32, 0.2) state = Parent.GetComponent<State_2DA1>(); tmp_dire = state.direction;// 親のゲーム内での方向識別データ } // Update is called once per frame void Update() { if (tmp_dire != state.direction) { tmp_dire = state.direction; // ロテート変更 vec3 = gameObject.transform.localEulerAngles; vec3.z = state.direction; gameObject.transform.localEulerAngles = vec3; // 位置変更 gameObject.transform.position = new Vector3(0, 0, 0); gameObject.transform.position = ShiftVector3(); Vector3_DebugLog(gameObject.transform.position); } } public Vector3 vec3_SV = new Vector3(0, 0, 0); int int_tmp; Vector3 ShiftVector3() { vec3_SV.x = 0; vec3_SV.y = 0; int_tmp = (state.direction <= 90) ? -1 : 1; // 座標をずらし if (state.direction == state.Left || state.direction == state.Right) { vec3_SV.x = Parent_Size.x * int_tmp; } else { vec3_SV.y = Parent_Size.y * int_tmp; } Debug.Log("vec3_SV_" + vec3_SV.x + "_" + vec3_SV.y + "_" + vec3_SV.z); return new Vector3(vec3_SV.x, vec3_SV.y, vec3_SV.z); }

実際の動作のキャプチャーです。
子オブジェクトにした状態と、子オブジェクトない場合の動きになります。
イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

gameObject.transform.positionではなく
gameObject.transform.localpositionに代入して解決しました。

投稿2020/05/23 15:27

beginner_F

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問