2

ここ数日、Unity の問題で頭がいっぱいです。

さて、私のゲームの詳細については触れませんが、私の問題を表す非常に単純な例を作成しました。

これらのコンポーネントの 2D シーンがあります。 基本シーン

シーンが読み込まれ、ボタンをタップすると、次のスクリプトが実行されます。

Vector3 pos = transform.position;
pos.x -= 10;
transform.position = pos;

私もこのコードを試しました:

transform.position = Camera.main.WorldToScreenPoint(new Vector3(0, 0, 0));

問題は、ボタンをクリックすると、オブジェクトの x-pos が期待どおりではない -1536 に設定されることです。画像は、ボタンがクリックされた後のシーンを示しています。Rect Transform の値に注意してください。 ボタンクリック後

だから私は少しグーグルをして、ScreenToWorldPoint、WorldToScreenPointなどについて知りましたが、これらの変換のどれも私の問題を解決しません.

おそらく私の目の前にある何かが欠けていると確信していますが、何がわからないのですか。

誰かが私を正しい方向に向けてくれることを願っています。

よろしくお願いします。

4

6 に答える 6

1

transform.localposition = new Vector3(0,0,0);ボタンは複数のゲーム オブジェクトの子であるため、使用してみてください。localpos を worldpos に変換するだけtransform.TransformPointの を使用することもできます。

于 2020-08-15T16:22:30.430 に答える