C#
1// 方向用列挙体 2public enum Direction : int 3 { 4 UP = 0, 5 RIGHT_UP, 6 RIGHT, 7 RIGHT_DOWN, 8 DOWN, 9 LEFT_DOWN, 10 LEFT, 11 LEFT_UP, 12 }
今回、お知恵を拝借したい部分が、下記の実装方法についてになります。
C#
1Direction Get8Direction(Vector2 direction) 2{ 3// ここが知りたいです。 4// ほとんど丸投げですみません。 5}
4方向の場合は、こんな感じで実装しました。
C#
1public Direction Get4Direction(Vector2 direction) 2 { 3 if (Mathf.Abs(direction.x) >= Mathf.Abs(direction.y)) 4 { 5 if (direction.x > 0.0f) 6 { 7 return Direction.RIGHT; 8 } 9 else 10 { 11 return Direction.LEFT; 12 } 13 } 14 else 15 { 16 if (direction.y > 0.0f) 17 { 18 return Direction.UP; 19 } 20 else 21 { 22 return Direction.DOWN; 23 } 24 } 25 }
ですが、これに関しても、もっといい実装があれば教えて欲しいです。
上記のソースはUnity C#の物ですが、
言語とかが違っても全然構わないので、参考になりそうなページがあった場合も教えていただけると幸いです。
何卒、よろしくお願いします。
回答4件
あなたの回答
tips
プレビュー