【发布时间】:2020-07-25 10:55:36
【问题描述】:
我正在制作一个需要从顶部生成项目的 android 游戏。我希望生成位置在我的场景顶部是水平随机的。我使用了这些代码,它们没有给我任何随机的东西,而且多个游戏对象同时从同一个生成器生成。我想一次生成一个游戏对象,而其他对象应该只在第一个从游戏场景中被摧毁后才生成。请帮助我对统一以及 c# 和 Stackoverflow 不熟悉。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Spawner : MonoBehaviour
{
public GameObject[] spawnableItems;
// Update is called once per frame
void Update()
{
bool isTimeToSpawn (GameObject itemGameObject)
{
spawnableSprites item = itemGameObject.GetComponent<spawnableSprites>();
float spawnDelay = item.seenEverySeconds;
float spawnsPerSecond = 1 / spawnDelay;
if(Time.deltaTime > spawnDelay)
{
Debug.LogWarning("SpawnRate Capped By FrameRate");
}
float threshold = spawnsPerSecond * Time.deltaTime;
if(Random.value < threshold)
{
return true;
}
else
{
return false;
}
}
foreach (GameObject item in spawnableItems)
{
if(isTimeToSpawn(item))
{
Spawn(item);
}
}
}
void Spawn (GameObject myGameObject)
{
GameObject myItem = Instantiate(myGameObject) as GameObject;
myItem.transform.parent = transform;
myItem.transform.position = transform.position;
}
}
【问题讨论】:
标签: c# unity3d game-development