
###前提・実現したいこと
Spriteはデフォルトで起点が中央に設定されていますが、
このSpriteの左上の位置座標を取得できるプロパティはありますか?
###試したこと
①マニュアルを見たが、それらしきプロパティが見つからない。 ②Spriteの起点から、Spriteの幅や高さの半分の値を引いたりすれば、左上の位置座標は取得できるかもしれない。
②の方法で左上の座標の取得が実現できそうではありますが、これしか方法はないのでしょうか?
左上の位置のプロパティが存在するのならば、それを使いたいと思っています。
Spriteの左上の位置座標の取得方法のご教授をお願いいたします。
※Spriteの起点はずらさずに中央に配置したままで扱いたいです。
###補足情報(言語/FW/ツール等のバージョンなど)
Unity 3Dで扱っています。(2Dを扱ったことはないですが、たぶん同じと思っています。)
###追記①
下記コードを試してみましたが、ワールド空間の座標は取得できませんでした。
C#
1ゲームオブジェクト.GetComponent<SpriteRenderer> ().sprite.rect.xMin; 2ゲームオブジェクト.GetComponent<SpriteRenderer> ().sprite.rect.yMin;
###追記②
C#
1 //GameObject cube2 = GameObject.Find ("Cube/cube2"); 2 GameObject cube2 = GameObject.FindGameObjectWithTag ("Cube2"); 3 4 Matrix4x4 _m = cube2.transform.localToWorldMatrix; 5 //cube2自身の座標の相対座標を指定。 6 //(親オブジェクトの相対座標ではない(cube2.transform.localPositionを設定するものではない)。 7 Vector3 _vec = new Vector3(0, 0, 0); 8 Vector3 _pos = _m.MultiplyPoint3x4(_vec); 9 10 //MultiplyPoint3x4()の引数に(0, 0, 0)を指定していた場合は、 11 //cube2の現在の位置のワールド座標。 12 Debug.Log (_pos); 13 //引数に(0, 0, 0)を指定していた場合、上記は下記と同じ。 14 Debug.Log (cube2.transform.position);

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/11/08 15:00
退会済みユーザー
2016/11/08 16:03
退会済みユーザー
2016/11/09 12:13
退会済みユーザー
2016/11/09 13:52
退会済みユーザー
2016/11/09 13:59
退会済みユーザー
2016/11/09 14:12
退会済みユーザー
2016/11/09 14:21