public PedestrianObject SpawnRandomObject(bool a_ignoreChangeOfSpawning = false) { if (m_objectPrefabs.Count <= 0) { return(null); } if (PedestrianSystem.Instance && !PedestrianSystem.Instance.CanSpawn()) { return(null); } float chanceOfSpawn = Random.Range(0.0f, 1.0f); if (!a_ignoreChangeOfSpawning && chanceOfSpawn > m_nodeObjectSpawnChance) { return(null); } int randIndex = Random.Range(0, m_objectPrefabs.Count); PedestrianObject obj = Instantiate(m_objectPrefabs[randIndex], transform.position, transform.rotation) as PedestrianObject; obj.Spawn(transform.position, m_startNode); return(obj); }
void Start() { if (Instance != this) { return; } if (m_randomObjectSpawnPerNode && Application.isPlaying) { PedestrianNode[] nodes = GameObject.FindObjectsOfType <PedestrianNode>(); for (int rIndex = 0; rIndex < nodes.Length; rIndex++) { int perNodeCount = 0; while (perNodeCount < m_numOfObjectsSpawnedPerNode) { float rand = Random.Range(0.0f, 1.0f); if (rand <= m_randomObjectSpawnChancePerNode && CanSpawn()) { int randObjectIndex = Random.Range(0, m_objectPrefabs.Count); PedestrianObject obj = Instantiate(m_objectPrefabs[randObjectIndex], transform.position, transform.rotation) as PedestrianObject; obj.Spawn(nodes[rIndex].transform.position, nodes[rIndex]); } perNodeCount++; } } } }