読者です 読者をやめる 読者になる 読者になる

Unity / VRゲーム開発日記@長崎

Unityを使ったVRのゲーム開発をやってます。

2Dオブジェクトの幅を取得する方法

まずオブジェクトにSprite Renderのコンポーネントが追加されている必要があります。
スプライト化したオブジェクトをHierarchyに持っていけば勝手に追加されていると思います。


f:id:icoc_dev:20140124092506p:plain


後は、以下のコードで幅を取得可能です。

	var sr = object.GetComponent<SpriteRenderer>();
	var width = sr.bounds.size.x;

bounds.sizeでオブジェクトのサイズを取ってるので、
yを参照すれば高さを取得できます。




スプライトの作成などについては、mobile touchのサイトで詳しく解説されていました。


Unity4.3 で追加された Sprite 機能を使ってみよう - その1 - Unityではじめるゲーム開発 - Mobile Touch - モバイル/タブレット開発者およびデザイナー向け情報ポータル



結果的にかなり簡単に取得出来ましたが、
2Dの情報がまだ少なく、ここに辿り着くまでかなり時間がかかってしまいました(--;


Unityのオブジェクトに、なぜwidthやhightのプロパティがないのかなぁと悩んでたのですが、
3Dの世界なので、端点の位置によってwidthやhightの捉え方が変わるので、
値の取りようがないのかなぁという結論に至りました。


でも、unity4.3から追加された2D機能、
これに関しては、厚みがないという前提で、X,Y軸に平行に存在するオブジェクトと考えれば
X軸または、Y軸においての距離は求めれるはず。


ということで、何らかの幅をとる方法がないのかなぁと試行錯誤した結果、
ようやく結論にたどりつきました。。


早く誰か2Dの情報まとめた書籍出して〜〜
(人まかせ…)