2017-03-04 16 views
1

私は、私のゲームオブジェクトが使用しているスプライトのピボットポイントを取得しようとしています。Unity:ゲームオブジェクトのスプライトのピボットを取得するには?

私は、ゲームオブジェクトをゲーム内に配置している間にスプライトのピボットポイントを変更しました。今、私が新しいゲームオブジェクトであるAの変換で別のオブジェクトを生成しようとすると、それは暑いと分かります。それは、Aの左上に生成されます。私は何とかスプライトの中心を計算する必要があります。世界座標で使用しています。

私はこの試み:

Debug.Log(tempGameObj.GetComponent<SpriteRenderer>().sprite.pivot); 

をしかし、ピボットポイントは(-0.25、1.25)であるが、これは(-80,0,400)として結果を生成します。

センターをどのように計算できますか?

答えて

2

は何を探していると、ここでScreenToWorldPoint方法

Vector3 center = Camera.main.ScreenToWorldPoint(tempGameObj.GetComponent<SpriteRenderer>().sprite.pivot); 

であるあなたはそれが https://docs.unity3d.com/ScriptReference/Camera.ScreenToWorldPoint.html

+1

これは権利である必要がある場合にはdocumantationです。 ['Sprite.pivot'](https://docs.unity3d.com/ScriptReference/Sprite-pivot.html)はピクセルで返され、通常の世界posに変換するには' ScreenToWorldPoint'が必要です。 OPが何をしているかに応じて、OPは['InverseTransformPoint'](https://docs.unity3d.com/ScriptReference/Transform.InverseTransformPoint.html)を使って、ワールドposをSpriteのローカル位置に変換する必要があります。 – Programmer

+0

@Halil、これがあなたの問題を解決したら、それを受け入れることによって解決したようにそれをチェックすることを忘れないでください。 – Programmer

関連する問題