forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Unity (http://forum.boolean.name/forumdisplay.php?f=144)
-   -   Фак по Юнити. (http://forum.boolean.name/showthread.php?t=12966)

Lestar 08.11.2011 18:30

Ответ: Фак по Юнити.
 
Загрузили модель,создали префаб этой модели(я рекомендую работать именно с префабами,а не моделями).Далее инстансируем модель.
PHP код:

public GameObject newModel;

void Update()
{
   if (
Input.GetMouseButton(0))  Instantiate(newModeltransform.positiontransform.rotation);


Это должен быть GameObject.Можно сделать просто public переменную и в инспекторе перетянуть в это поле обьект.После этого к нему можно будет обращаться.Пример я написал вверху.

Amatsu 08.11.2011 19:00

Ответ: Фак по Юнити.
 
Спасибо. Я немного не то хотел.
В общем я уже выяснил, что есть метол загрузки ресурсов непосредственном в проект. Объясните плиз, на что ругается компилятор:

public GameObject go_player;
go_player = Resources.Load("Assets\models\mesh.fbx",GameObject );

pax 08.11.2011 19:58

Ответ: Фак по Юнити.
 
А где само сообщение компилятора?

По идее ты зря указал расширение ресурса да еще и не поместил ресурс в папку Resources. Вероятно должно быть так:

PHP код:

public GameObject go_player;
go_player = (GameObject)Resources.Load(@"models\mesh"typeof(GameObject)); 

При условии что папка models лежит в папке Resources.

Я например вообще не пользуюсь таким методом загрузки ресурсов. Просто незачем писать лишний код загрузки.

Lestar 08.11.2011 20:55

Ответ: Фак по Юнити.
 
Один раз только столкнулся с необходимостью в подобном методе загрузки ресурсов при динамическом создании обьекта.

Amatsu 08.11.2011 21:15

Ответ: Фак по Юнити.
 
Дело в том, что там, где я хочу работать - пишут полностью код всей программы, как на блитце. К визуальному программированию почти не прибегают. То есть так: создаешь новый проект, создаешь голый C# скрипт и вперед.

pax 08.11.2011 21:30

Ответ: Фак по Юнити.
 
На Unity? Глупая контора. Лучше тогда идти программировать на чистом С++ и OpenGL или DirectX раз такие порядки.

Цитата:

Сообщение от Amatsu (Сообщение 208921)
К визуальному программированию почти не прибегают.

Кстати, визуального программирования в Unity по умолчанию нет ;)

Amatsu 08.11.2011 22:12

Ответ: Фак по Юнити.
 
Цитата:

Сообщение от pax (Сообщение 208926)
Глупая контора

Не сказал бы
Pax, а как бы ты решил задачу? : нужно создать болванку модели, не отображающуюся в проекте как добавленный объект. То есть не как в блитце - грузим модель, хайдим, а потом CopyEntity. Модели не должно быть в сцене вообще, она должна быть загружена лишь в память один раз. А после этого нужно делать ее инстансы.

pax 08.11.2011 22:27

Ответ: Фак по Юнити.
 
Создать из модели префаб, назначить скрипту на переменную как сказал Lestar
В сцене сделать пустой объект со скриптом респавна. Этот скрипт будет создавать модель в нужном месте с помощью функции Instantiate(). В общем смотри пост №571

Lestar 08.11.2011 22:38

Ответ: Фак по Юнити.
 
Вложений: 1
Делим все ассеты на группы.Для каждой группы делаем своего родителя отвечающего за загрузку и выгрузку обьектов.Для всех родителей делаем один Main обьект,который будет ими управлять.По делфолту в сцене находится один единственный обьект Main. После запуска сцены загружаются полностью все обьекты и согласно логике необходимости не нужные отправляем в пулл ,по необходимости достаем и убираем .Если уж сильно печет можно Main обьект грузить из ресурсов.

Amatsu 08.11.2011 23:02

Ответ: Фак по Юнити.
 
Спасибо за совет... у меня последний на сегодня вопрос, если не сложно - ответьте пожалуйста:
Вот я создал в редакторе префаб, закинул его в созданную папку Prefabs и назвал его fighter_model
Теперь мне в главном скрипте, не привязанном компонентом к этому префабу, нужно найти этот префаб и создать его инстанс.
Код в посте №571, как я понял, работает если для префаба писать свой скрипт, что мне делать сейчас не хотелось бы.

pax 08.11.2011 23:23

Ответ: Фак по Юнити.
 
В главном скрипте создай переменную GameObject типа, публичную. В редакторе появится поле для назначения префаба или другого нужного объекта (это готовая ссылка на объект, находящийся в сцене или ресурсах, смотря что назначить). Назначь свой перфаб этой переменной в редакторе. Дальше с ним делай в главном скрипте что нужно. Пример, все тот же скрипт от Lestar'а. Считай что это главный скрипт.

Тут вообще система какая - Unity собирает в проект ресурсы по зависимостям. Если есть ссылки на объекты ресурсов в открытых переменных скриптов, то эти ресурсы погружаются автоматом при старте сцены, а следовательно включает в конечный билд. А папку Resources Unity подгружает в билд полностью, даже если есть ресурсы ни разу не использовавшиеся.

Amatsu 10.11.2011 15:28

Ответ: Фак по Юнити.
 
Опять застрял.
В общем, функции Sin и Cos в Блитце работают с угловым значением (90, 180, 360 и т.д.).
А вот в C# функции Mathf.Sin в Mathf.Cos при изменении угла от 0 до 360 выдают какие-то дикие значения, постоянно скачущие (например если изменять угол от 0 до 90 значение синуса несколько раз изменится от 0 до 1). В чем может быть проблема?

Все, решил проблему. Нужно было сделать угол в пределах от -180 до 180 (то есть отнять от угла поворота модели 180), потом умножить на Pi и разделить на 180. Усе работает, спасибо

Lestar 10.11.2011 16:06

Ответ: Фак по Юнити.
 
Mathf.Cos и Sin возвращают радианы.

h1dd3n 10.11.2011 16:15

Ответ: Фак по Юнити.
 
Sin возвращает радианы?oO

Lestar 10.11.2011 16:23

Ответ: Фак по Юнити.
 
http://unity3d.com/support/documenta...Mathf.Sin.html Документация иногда спасает от лишних вопросов.


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot