どのように私は(敵)ゲームオブジェクトの非一様ランダム生成を作成します。 スポーンゲームオブジェクトの大群、生成されたオブジェクトの濃度を変更
私はそこにしたいです前方に多くのゲームオブジェクトになり、後方に行くにつれてゲームオブジェクトが少なくなります。私は、空のゲームオブジェクトを作り、敵がこのようなコードをターゲットに持つと考えた:
public Vector3 target : Transform;
if (target == null && GameObject.FindWithTag("Empty"))
{
target = GameObject.FindWithTag("Empty").transform;
}
しかし、それを行うことは私に戻って彼のint少ないがある「道」効果を与えないだろう。
void SpawnHorde()
{
for (int i = 0; i < hordeCount; i++)
{
Vector3 spawnPosition = new Vector3(Random.Range (0, 200), 50, Random.Range (0, 200));
Instantiate(Resources.Load ("Prefabs/Sphere"), spawnPosition, Quaternion.identity);
}
}
を誰もがこれを達成するためにどのようにとの提案を持っています。ここでは
は、それが助け場合は、ランダムに敵を生成するための私のコードですか?ジェリーのコード@実装した後
マイ結果:
前にもっと集中。後ろに少なく:
あなたは画像の上に取ると、XY軸系に入れている場合は、左から右へと段階的に調整し、各X座標またはどのように多くの敵をランダムにオフセットを伝える機能を持っているXを通過することができYラインに沿って出現する。たとえば、X = 0でランダムに10個の敵を、次にX = 1で7個の敵をランダムに発生させます。指数関数的なフォールオフ( 'e ^( - x)')や線形フォールオフ( '-ax + b')多分二次的だろうか? X座標が進むにつれて数学的にYライン上の敵の数を表すことができればいいほど良い結果が得られます。 –
ランダムは範囲内の乱数を生成し、一般的にはその範囲内で時間の経過とともにかなり均等に分布します。あなたは本当に乱数の平均と標準分布を設定できるようにしたい。私は[この質問](http://stackoverflow.com/questions/18807812/adding-an-average-parameter-to-nets-random-next-to-curve-results?noredirect=1&lq=1)をチェックアウトします。その答えは、あなたのx軸の値に対してこのタイプの分布を作る方法を示しています。 – Lithium
インスピレーションが必要な場合は、2つの線形関数(ここでは 'y = -2x + 100'と' y = 2x - 100')を取ることができます。 'x = 0〜x = 50'であればスポーンしたいそれはあなたが望んでいた素晴らしい "トレイル"を提供します。今度は、低いx値はより多くの敵が生まれたことを意味し、高いx値は生み出される敵の数が少ないことを意味します(線形Lerping?))、あなたは敵の道を持っています。 (http://i.stack.imgur.com/FpdOd.png) –