それがランダムに出現する行以上
public class spawnball : MonoBehaviour {
public GameObject ballprefab;
GameObject ballclone;
// Use this for initialization
void Start() {
}
// Update is called once per frame
void Update() {
if (Input.GetMouseButtonDown(0)) {
spawn();
Destroy (ballclone,3);
}
}
void spawn()
{
ballclone = Instantiate (ballprefab,transform.position,Quaternion.identity)as GameObject;
}
}
。
最初のステップは、Time.deltaTime
を使用して、ボールを最後に作成してからどれぐらいの時間が経過しているかを調べることです。
例は次のようになります。
private timeSinceLastDrop: float;
private dropInterval: float = 3f;
void Update(){
// have we surpassed our interval?
if(timeSinceLastDrop >= dropInterval){
this.spawn();
timeSinceLastDrop = 0;
}
else
timeSinceLastDrop += Time.deltaTime;
}
ドロップする場所の第二の問題を満たすために、あなたはRandom.Range(min, max)
を使用して、あなたがドロップすることができ、最も外側のパラメータとして、最小値と最大値を使用することができます。例えば
:
void spawn(){
ballclone = Instantiate(ballprefab,transform.position,Quaternion.identity)as GameObject;
ballclone.transform.position.x += Random.Range(-10f, 10f);
}
どこかに構文エラーがあるかもしれないので、私はIDEなしでこれを書いています。
出典
2017-05-21 05:05:35
Zze
ここでは、C#ではなくUnityScriptを使用していますが、マイナーな変換が必要です(変数宣言)。さもなければ、それはコンパイルされるように見えます。 – Draco18s
@ Draco18s私は100%あなたに同意します。私は正直言って、人々が統一のためにC#にタグをつけたとき、それはユニティスクリプトを意味すると仮定します。 – Zze
Unityは両方のためにコンパイルします(そしてBoo、ただし正直言って、誰もBooを使用しません)。そのため、仮定は真ではないかもしれません。 – Draco18s