37 lines
1.0 KiB
C#
37 lines
1.0 KiB
C#
using Mirror;
|
|
using Unity.Mathematics;
|
|
using UnityEngine;
|
|
using Random = UnityEngine.Random;
|
|
public class EnergyCellManager : NetworkBehaviour
|
|
{
|
|
public GameObject prefab;
|
|
|
|
private Vector3 _offset = new Vector3(3, -1, 3);
|
|
private int _levelSize;
|
|
private int _energySpawnChance;
|
|
void Start()
|
|
{
|
|
if (!isServer) return;
|
|
|
|
_levelSize = PlayerPrefs.GetInt("LevelSize");
|
|
_energySpawnChance = PlayerPrefs.GetInt("EnergySpawnChance");
|
|
|
|
int randomValue = Random.Range(0, _levelSize);
|
|
float threshold = _levelSize * (_energySpawnChance / 100f);
|
|
|
|
if (randomValue < threshold)
|
|
{
|
|
SpawnEnergyCell();
|
|
}
|
|
}
|
|
|
|
void SpawnEnergyCell()
|
|
{
|
|
Vector3 randomPosition = new Vector3(Random.Range(-6, 6), 0f, Random.Range(-6, 6));
|
|
GameObject go = Instantiate(prefab, transform.position + _offset + randomPosition, Quaternion.identity);
|
|
go.transform.SetParent(transform, false);
|
|
NetworkServer.Spawn(go);
|
|
}
|
|
}
|
|
|