Показать сообщение отдельно
Старый 23.02.2013, 12:25   #919
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

Посидел, помозговал и решил сделать отдельный скрипт, хранящий всю нужную инфу, чтобы не таскать её за каждым созданным скриптом.
Получилось так:
Скрипт где хранятся переменные

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 хранится констант..
__________________
(Offline)
 
Ответить с цитированием