Посидел, помозговал и решил сделать отдельный скрипт, хранящий всю нужную инфу, чтобы не таскать её за каждым созданным скриптом.
Получилось так:
Скрипт где хранятся переменные
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class Database : MonoBehaviour {
public enum eType{Grass1=1};
public int eTypeCount=5;
public static byte[] plantDensity;
public static float[] plantSpreadInterval;
public static float[] plantGrowInterval;
public static float[] plantSpreadRadius;
void Awake()
{
plantDensity = new byte[eTypeCount];
plantGrowInterval = new float[eTypeCount];
plantSpreadInterval = new float[eTypeCount];
plantSpreadRadius = new float[eTypeCount];
//Grass 1
int type = (int)eType.Grass1;
plantDensity[type] = 1;
plantGrowInterval[type] = 10;
plantSpreadInterval[type] = 3;
plantSpreadRadius[type] = 1;
}
}
А тут в другом скрипте достаю данные из первого:
switch(plantName)
{
case "Grass1" : {plantType=(int)Database.eType.Grass1; break;}
case "Grass2" : {plantType=(int)Database.eType.Grass1; break;}
}
//считываем параметры
growInterval = Database.plantGrowInterval[plantType];
spreadInterval = Database.plantSpreadInterval[plantType];
Единственное что у меня не получилось, это узнать сколько в enum хранится констант..