回答編集履歴

1

情報の追加

2016/11/09 14:08

投稿

退会済みユーザー
test CHANGED
@@ -38,7 +38,31 @@
38
38
 
39
39
  var _pos = _m.MultiplyPoint3x4(_vec);
40
40
 
41
+ Debug.Log("1 : " + _pos);
42
+
43
+ Debug.Log("2 : " + GetSpriteTopLeftPosition());
44
+
45
+ }
46
+
47
+
48
+
49
+ // 別解
50
+
51
+ Vector3 GetSpriteTopLeftPosition(){
52
+
53
+ var _spriteRenderer = GetComponent<SpriteRenderer>();
54
+
55
+ var _sprite = _spriteRenderer.sprite;
56
+
57
+ var _halfX = _sprite.bounds.extents.x;
58
+
59
+ var _halfY = _sprite.bounds.extents.y;
60
+
61
+ var _vec = new Vector3(-_halfX, _halfY, 0f);
62
+
63
+ var _pos = _spriteRenderer.transform.TransformPoint(_vec);
64
+
41
- Debug.Log(_pos);
65
+ return _pos;
42
66
 
43
67
  }
44
68
 
@@ -49,3 +73,5 @@
49
73
 
50
74
 
51
75
  [スクリプトリファレンス : Bounds](https://docs.unity3d.com/ja/current/ScriptReference/Bounds.html)
76
+
77
+ [スクリプトリファレンス : Transform.TransformPoint](https://docs.unity3d.com/ja/current/ScriptReference/Transform.TransformPoint.html)