Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Unity

Unity Мультиплатформенный инструмент для разработки игр

Ответ
 
Опции темы
Старый 22.02.2013, 17:34   #916
Lestar
Бывалый
 
Аватар для Lestar
 
Регистрация: 24.05.2011
Адрес: Украина,Харьков
Сообщений: 890
Написано 359 полезных сообщений
(для 880 пользователей)
Ответ: Фак по Юнити.

 var position=  transform.position;
 position.y=(float)Grid.thisTerrain.SampleHeight(transform.position); 
 transform.position= position;
__________________
Нам суждено построить мосты и храмы,которых никогда не существовало и не могло существовать в природе.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
burovalex (22.02.2013)
Старый 23.02.2013, 09:51   #917
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

Помогите оптимально реализовать задачу.
Есть объект со скриптом, который со временем будет создавать такие же объекты с таким же скриптом.
Как лучше задавать значения в новом скрипте?
Т.е. у меня будет допустим один объект трава, второй объект дерево. И они будут размножаться.
Мой вариант такой, при создании нового объекта, в новый скрипт передавать только один параметр (допустим plantType). А при инициализации скрипта делать выборку по plantType.
Мой вариант

... : MonoBehaviour
{
 
enum eType {Grass1=1Tree1Tree2};
 
enum eDensity {Grass1 1Tree1 2};
 
enum eLife {Grass1 3000Tree1 20000};

void Start()
{
if (
plantType eType.Grass1)
{
thisDensity eDensity.Grass1;
thisLife eLife.Grass1;
}
}


Но не удобно что для каждого нового типа придётся дописывать немало строк...
Есть предложения?
__________________
(Offline)
 
Ответить с цитированием
Старый 23.02.2013, 10:05   #918
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

Что-то вроде?
... : MonoBehaviour
{
 public 
enum Type {Grass1=1Tree1Tree2};
 public 
enum Density {Grass1 1Tree1 2};
 public 
enum Life {Grass1 3000Tree1 20000};

public static ... 
Create(string ...nameType typeDensity densityLife life )
{
     var 
myNew... = new GameObject(...name).AddComponent<...>();
     
myNew....thisDensity density;
     
myNew....thisType type;
     
myNew....thisLife  life;
}

void Start()
{

}


__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
burovalex (23.02.2013)
Старый 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)
 
Ответить с цитированием
Старый 23.02.2013, 13:03   #920
seaman
Знающий
 
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений
(для 180 пользователей)
Ответ: Фак по Юнити.

Enum.GetNames(typeof(eType)).Length
(Offline)
 
Ответить с цитированием
Старый 23.02.2013, 14:47   #921
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

Нету такого,даже справка ничего не выдала
__________________
(Offline)
 
Ответить с цитированием
Старый 23.02.2013, 16:44   #922
Andvrok
Бывалый
 
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений
(для 995 пользователей)
Ответ: Фак по Юнити.

using System
допиши.
(Offline)
 
Ответить с цитированием
Старый 23.02.2013, 17:39   #923
seaman
Знающий
 
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений
(для 180 пользователей)
Ответ: Фак по Юнити.

даже справка ничего не выдала
Не забывайте, что Вы пишете на C# под .NET. Соответственно далеко не все есть в справке Юнити. Используйте MSDN
(Offline)
 
Ответить с цитированием
Старый 23.02.2013, 20:37   #924
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

Усёк, спасибо! )

Ребят, помогите, вроде ничего особенного не делал, а проект нагнулся походу. Добавлял меши, префабы, к ним цеплял скрипты. Ошибок не показывает а при запуске пишет исправьте перед запуском.

Потом нажал Build and Run и тут у меня высыпалось такое (рисунок в аттаче)
Пробовал удалить добавленные префабы, не помогло..
Пиз*ец, удалил скрипты, проверил - ошибка, закрыл без сохранения, а скрипты всё равно удалились, и ошибка осталась

Нашёл скрипты в Saves/Data/Managed/скрипты. Но они какието другие, в моно ничего по ним не показывает, можно както восстановить???
Миниатюры
Нажмите на изображение для увеличения
Название: 1.png
Просмотров: 586
Размер:	59.3 Кб
ID:	18850  
__________________
(Offline)
 
Ответить с цитированием
Старый 23.02.2013, 20:53   #925
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

Интересная ошибка, никогда такую не видел...
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 23.02.2013, 20:56   #926
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

Капец, видимо косяк из-за того что с работы собирался, в спящий режим отправил с включённой прогой.
Скрипты то можно както восстановить из того что на скрине??
Миниатюры
Нажмите на изображение для увеличения
Название: 1.png
Просмотров: 603
Размер:	49.5 Кб
ID:	18851  
__________________
(Offline)
 
Ответить с цитированием
Старый 23.02.2013, 21:55   #927
Andvrok
Бывалый
 
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений
(для 995 пользователей)
Ответ: Фак по Юнити.

У меня была такая ошибка пару раз. К сожалению, я не нашёл способа восстановить скрипты/префабы.
(Offline)
 
Ответить с цитированием
Старый 24.02.2013, 00:54   #928
seaman
Знающий
 
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений
(для 180 пользователей)
Ответ: Фак по Юнити.

Скрипты то можно както восстановить из того что на скрине??
Reflector
(Offline)
 
Ответить с цитированием
Старый 24.02.2013, 07:43   #929
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

А каким образом повредились скрипты? они же все в папке Assets должны быть? И зачем ты сделал билд в папку ассетов? Там же все dll, которые подключатся к проекту...
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 24.02.2013, 08:34   #930
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

Это стандартный путь где хранятся сохраненные сцены, туда и билды он пихает. А скрипты не повредились.

Потом нажал Build and Run и тут у меня высыпалось такое (рисунок в аттаче)
Пробовал удалить добавленные префабы, не помогло..
Пиз*ец, удалил скрипты, проверил - ошибка, закрыл без сохранения, а скрипты всё равно удалились, и ошибка осталась
__________________
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 08:16.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com