0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Unity 2D スプライトの大きさを取得する

Last updated at Posted at 2021-07-03

##0.0 はじめに
スプライトの大きさをSpriteRendererを使って取得します。

##1.0 準備
四角いスプライトを1つ用意しました。

横が1のサイズ、縦が2のサイズ、中心は(-0.5, 0.2)です。
image.png


<参考情報> 使用した四角のスプライトは100 x 100 px(ピクセル)の画像です。この画像の設定(Sprite Mode)でPixels Per Unitを100に設定しています。これで100 pxはワールド座標で1の大きさに相当します。 用意した四角は中心が(-0.5, 0.2)の位置で横の長さが1、縦が2なので、右上の角は(0.0, 1.2)の位置にあります(これがbounds.maxに相当します) ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352037/a4a2dd7e-154b-c174-e88d-376272332e8b.png)

2.0 Spriteのサイズを取得する

SpriteRendererのboundsが使えます。サイズや場所はワールド座標です。

Test.cs
GameObject sqObj = GameObject.Find("Square"); // 目的のスプライトのオブジェクトを取得
SpriteRenderer sqSr = sqObj.GetComponent<SpriteRenderer>();//目的のスプライトのSpriteRendererを取得
Debug.Log("四角のサイズは " + sqSr.bounds.size + " です"); // 四角のサイズは (1.0, 2.0, 0.2) です
Debug.Log("四角の横の長さは " + sqSr.bounds.size.x + " です"); // 四角の横の長さは 1 です
Debug.Log("四角の縦の長さは " + sqSr.bounds.size.y + " です"); // 四角の縦の長さは 2 です
Debug.Log("中心からの距離は " +sqSr.bounds.extents+ " です");//中心からの距離は (0.5, 1.0, 0.1) です
Debug.Log("中心の座標は " + sqSr.bounds.center + " です");//中心の座標は (-0.5, 0.2, 0.0) です
Debug.Log("右上の座標は " + sqSr.bounds.max + " です");//右上の座標は (0.0, 1.2, 0.1) です
Debug.Log("左下の座標は " + sqSr.bounds.min + " です");//左下の座標は (-1.0, -0.8, -0.1) です

👍ポイント
sqSr.bounds.max.x (sqSr.bounds.min.x)、sqSr.bounds.max.y (sqSr.bounds.min.y)にてx座標、y座標を取得出来ます。

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?