複数のオブジェクトを等間隔やランダムに並べたいけどツールやプログラムを書くほどでもない場合はどうすればいいの?
私は今回紹介する便利な方法を知るまでは手作業でちまちまと並べていた時期もありました。でもそんな原始的で効率の悪い方法を使わずともいい方法があります!
今回はそんなときに便利なインスペクターを使った並べ方を紹介します。

これを知ってるかどうかで開発が少し楽になるはずです!難しいことはなにもないので一緒に確認していきましょう!
インスペクターに入力できる数式一覧
それではまずUnityのインスペクターに対してどんなことができるのか確認してみましょう。私は最初、簡単な四則演算くらいだと思っていました。ですが私が思っていたよりもたくさん、そしていろいろなことが出来そうな感じでした。
四則演算
まずは基本的な四則演算です。特に何も言うことはありません、皆さんがいつも使ってるやつです。これだけでもオブジェクトの現在値に対してそれぞれ加算、減算などができるのでとても便利です。
演算子 | 説明 |
---|---|
+ | 加算 |
ー | 減算 |
* | 乗算 |
/ | 除算 |
+= | 現在の値に加算 |
-= | 現在の値に減算 |
*= | 現在の値に乗算 |
/= | 現在の値に除算 |
% | 余り |
^ | 累乗 |
関数
次に関数です。これは普段スクリプトを書くときにMathfをよく使用すると思いますが、そのMathfで使用している関数をインスペクターに入力することができるんです!初めて知りました。
演算子 | 説明 |
---|---|
ceil(x) | 小数点以下切り上げ |
floor(x) | 小数点以下切り捨て |
round(x) | 整数に丸める(1.4は1に、1.5は2に丸める) |
等間隔、ランダム
個人的にはこれをよく使っている気がします。簡単で一番使うタイミングが多いので覚えておいて損はないと思います。
演算子 | 説明 |
---|---|
L(最小値,最大値) | 指定した範囲で等間隔に並べる |
R(最小値,最大値) | 指定した範囲でランダムに並べる |
# | インデックス番号 |
三角関数など
これは使い慣れてないと難しいかもしれませんが、使いこなせるようになるとすごく便利です。この記事でこれを使ったオブジェクトの並べ方を紹介しているのでこの記事を最後まで読んで是非試してみてください!
演算子 | 説明 |
---|---|
sin() | 正弦 |
cos() | 余弦 |
tan() | 正接 |
意外と自由度が高かった!
思っていたよりも意外といろんな計算式をいれることができますね。
複雑な計算式をいれることもできますが、今回は実際にこれを使って開発でよく使いそうな簡単で使用頻度の高そうな計算式を入れてみましたので紹介します。
これをきっかけに自分なりに数式を組んでみたりして自分が使いやすいようにオブジェクトを効率よく並べていきましょう!
ではここからは実際にインスペクターに数式を入力してオブジェクトを効率よく自由に並べてみましょう!
オブジェクトの並べ方を実践してみる
まずはオブジェクトを複数作成します。今回は球体を5個作成しました。
次に作成した球体5個をShiftボタンでまとめて選択した状態でこれから紹介する方法を試してみるといい感じにオブジェクトを配置できます!
等間隔に並べる方法
複数のオブジェクトを等間隔に並べる方法はインスペクターにL(最小値,最大値)を入力します。画像ではPositionのXに入力しています。
PositionのZに入力すると縦方向に並びます。XとZ方向に入力するとどうなるでしょうか?皆さんも色々試してみてください!


ランダムに並べる方法
ランダムに配置したいときはR(最小値,最大値)を入力します。
今回はPositionのXとZ方向にランダムに配置してみました。入力するたびにランダムに配置されるので配置が気に入らなかったときは、いい感じに配置されるまで繰り返し入力してみてください。


実際に配置するとこんな感じになります。
等間隔に円形で並べる方法
等間隔、そして円形に並べるには一見難しそうに見えるかもしれませんが三角関数を使って等間隔にオブジェクトを並べようとしているだけです。XとYに入力する内容はほぼ変わらずsinかcosの違いです。
PositionのXにsin(L(-オブジェクトの数,オブジェクトの数))*オブジェクトの数-1
PositionのYにcos(L(-オブジェクトの数,オブジェクトの数))*オブジェクトの数-1
を入力することで並べることができます!これはとても便利ですね!
この場合、YではなくZにcosを入力するとXZ平面で等間隔に任意の数のオブジェクトを並べることができるはずです。


まとめ
昔はこの方法を知らなかったので手作業で並べたりしていましたが、これを知ってるかどうかで開発効率にすごく差がつきます。
暗記する必要なないですが、どこかにメモをしておいていつでもコピーして入力できるようにしておくと便利かもしれません。
いままで手作業で一つずつオブジェクトを並べていた人はこれで簡単に複数のオブジェクトを自由に並べることができるようになると思うので手作業で並べるストレスから開放されましょう!