私は、プレイヤーが静止していて背景が動く 3D 無限ランナー カーレース タイプのゲームを持っています。私のゲームでは、時間の経過とともにコインをランダムにスポーンしたいのですが、コインはプレーヤーのかなり前にスポーンする必要があり、コインの z 軸は、y 軸を一定に保ち、x 軸の値を -2 のランダムな範囲に保ちながら縮小されます。 2. コインは正常に生成されますが、不規則に生成されます。シーンに 4 つのコイン ゲーム オブジェクトを作成しました。4 つのコインを直線上にスポーンさせたいと考えています。これは、コインがプレイヤーに向かって一直線に並んでいるため、プレイヤーがコインを簡単に収集できるようにするためです。プレーヤーの動きは、-2 から 2 までの x 軸にのみあります。私の問題は、プレーヤーがコインを簡単に収集できないため、コインが不規則に生成されることです。これは私のコードです:
function Update()
{
MoveCoin();
}
function MoveCoin()
{
ReleaseCoin();
//CoinsOnRoad is an array containing the current coins which are on the road
//CoinPool is the array of coins
for(var i:int =0;i<CoinsOnRoad.length;i++)
{
var gcoin:GameObject = CoinsOnRoad[i] as GameObject;
gcoin.transform.position.z-=3*speed*Time.deltaTime;
if(gcoin.transform.position.z>=-10)
{
//Do nothing if the coin is on the visible area of the road. If it becomes invisible
//remove the coins from CoinsOnRoad Array and insert the coin back to the CoinPool Array
}
else
{
CoinPool.push(gcoin);
CoinsOnRoad.remove(gcoin);
}
}
}
function ReleaseCoin()
{
if(CoinPool.length==0)
{
}
else
{
var coin:GameObject=CoinPool.shift() as GameObject;
CoinsOnRoad.push(Instantiate(coin,new Vector3(Random.Range(-2.0,2.0),0.3,30+Random.Range(1,10)),Quaternion .identity));
}
}
コインは正しく生成されていますが、順序が不規則です。誰かが私を助けてくれますか?前もって感謝します..私は unity に慣れていないので、自分のゲーム ロジックが正しいかどうかさえわかりませんでした。コードのどこかが間違っている場合、誰かがコードで私を修正できますか。