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

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

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

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

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

Ребят помогите разобраться. Начал осваивать корутины, но в моём примере ниже, корутина выполняется только один раз. т.е. FPSCount = 1, и корутина останавливается.
Я скорее всего смысл их не полностью знаю.
Я думал что корутина работает постоянно, пока её не остановишь или return не сделаешь.


using UnityEngine;
using System.Collections;

public class 
Game MonoBehaviour {
    public 
bool showFPS
    public 
int FPSCountFPSResult;
    private 
float FPSTimer;
    
void Start () {
    if (
showFPS == true) {StartCoroutine(ShowFPS());}
    }
    
    
// Update is called once per frame
void Update () {
    
    }

IEnumerator ShowFPS()
    {
    
FPSTimer FPSTimer Time.deltaTime;
    
FPSCount++;
    if (
FPSTimer >= 1f) {FPSTimer 0FPSResult FPSCount;} 
    if (
showFPS == false) {yield return null;}
    }

__________________
(Offline)
 
Ответить с цитированием
Старый 24.02.2013, 10:13   #932
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

Опять же нарыл пример Пакса )
Разобрался немного, но суть всё равно до конца не понимаю... Но работает


using UnityEngine;
using System.Collections;

public class 
Game MonoBehaviour {
    public 
bool showFPS
    public 
int FPSCountFPSResult;
    private 
float FPSTimer;
    
void Start () {
    if (
showFPS == true) {StartCoroutine(ShowFPS());}
    }

IEnumerator ShowFPS()
    {
    while (
showFPS)
        {
        
FPSTimer FPSTimer Time.deltaTime;
        
FPSCount++;
        if (
FPSTimer >= 1f) {FPSResult FPSCountFPSTimer 0FPSCount 0;} 
        yield return new 
WaitForSeconds(0.1f);
        }
    }

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

Удали билд из папки ассетов, там их не должно быть. Никогда не делай билд в папку ассетов, в папку преокта можно, но не в Assets.

Корутина это функция, выполнение которой может прерываться на какое-то время, например до следующего кадра (yield return null), на определенное время (yield return new WaitForSeconds(0.1f)), до конца кадра (yield return new WaitForEndOfFrame()), до конца скачивания файла (смотри пример в классе WWW) и т.д.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
burovalex (24.02.2013)
Старый 24.02.2013, 18:43   #934
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

Хорошо что рано косяк произошел, теперь чаще буду экспортировать свои ассеты.

Ребят, подскажите. Мне надо обратиться к текстуре2д. Но когда я пытаюсь считать пиксель, компилятор говорит что текстура не читабельна (not readable), говорит изменить настройки импорта (умный собака ) ). Не нашёл такую настройку. Подскажите.
__________________
(Offline)
 
Ответить с цитированием
Старый 24.02.2013, 19:49   #935
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

Нашёл!!
Чтобы можно было манипулировать текстурой, надо выбрать текстуру, Texture Type выбрать Advanced, и поставить галочку Read/Write Enable.
__________________
(Offline)
 
Ответить с цитированием
Старый 24.02.2013, 21:40   #936
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

В импорте 3д моделей есть ньюанс, в 3д максе вертикальная ось Z, в юнити Y. При импорте модель расположена нормально (вертикально), НО при локальной трансформации вместо Y меняется Z.
К примеру:
processTimer += Time.deltaTime;
        
float scale Mathf.InverseLerp(0f,growInterval,processTimer);
        
transform.localScale = new Vector3(scale,scale*5,scale); 
Как можно решить такую задачу?
Может как то можно глобально менять масштаб? я не нашел
__________________
(Offline)
 
Ответить с цитированием
Старый 24.02.2013, 23:01   #937
seaman
Знающий
 
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений
(для 180 пользователей)
Ответ: Фак по Юнити.

Как можно решить такую задачу?
Нормально экспортировать из Макса.
Почитай тут:
http://gamecreatingcommunity.ru/forum/59-5419-1
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
burovalex (25.02.2013)
Старый 25.02.2013, 08:45   #938
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

Там написано просто повернуть пивот по оси Х на 90 градусов. Но таким образом ось Z будет направлена в противоположную сторону.
Ну да ладно, попробую сначала..
__________________
(Offline)
 
Ответить с цитированием
Старый 25.02.2013, 09:30   #939
seaman
Знающий
 
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений
(для 180 пользователей)
Ответ: Фак по Юнити.

Но таким образом ось Z будет направлена в противоположную сторону.
С чего вдруг в противоположную? Z была "вверх" - станет "от тебя". Y была "на тебя", станет "вверх".
(Offline)
 
Ответить с цитированием
Старый 25.02.2013, 09:42   #940
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

Ты не прав, при экспорте твоя модель будет смотреть на тебя, а должна от тебя.
__________________
(Offline)
 
Ответить с цитированием
Старый 25.02.2013, 09:44   #941
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

А результат в Unity? И еще не видно в каких координатах ты работал в 3ds max...
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 25.02.2013, 10:08   #942
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

Пакс, оси в максе видно, они мелкие слева снизу.
Проверил локальную трансформацию объекта в юнити, всё работает правильно!

Вот правильный вариант
1) Повернуть пивот по оси Х на 90 градусов. (Affect Pivot Only)
2) Повернуть модель по оси Z на 180 градусов. (Affect Object Only)
Миниатюры
Нажмите на изображение для увеличения
Название: 1.png
Просмотров: 1836
Размер:	50.8 Кб
ID:	18860  Нажмите на изображение для увеличения
Название: 2.png
Просмотров: 688
Размер:	72.3 Кб
ID:	18861  Нажмите на изображение для увеличения
Название: 3.png
Просмотров: 701
Размер:	422.3 Кб
ID:	18862  
__________________
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
pax (25.02.2013)
Старый 25.02.2013, 17:12   #943
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

Каждый загруженный меш автоматически создает свой материал, как можно обратиться в скрипте к материалу в загруженном меше.

public class Example Mono..
{
public 
Mesh thisMesh;
void Start()
 {
 
Material thisMaterial thisMesh.????? ;
 }

А то у меня как то геморно получается. Есть префаб со скриптом, куда должны ложиться меши с материалами, и приходится создавать еще одни префабы где будут лежать меши с материалами.

Я вот про этот материал, в аттаче
Миниатюры
Нажмите на изображение для увеличения
Название: 1.png
Просмотров: 706
Размер:	905.8 Кб
ID:	18863  
__________________
(Offline)
 
Ответить с цитированием
Старый 25.02.2013, 18:03   #944
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

Меш не связан с материалом, материал определяет рендерер при визуализации меша который импортируется на тот же объект (gameObject.GetComponent<Renderer>.material)

У тебя там MeshRenderer и у него есть свиток Materials
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
burovalex (25.02.2013)
Старый 25.02.2013, 18:24   #945
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

ЕССС! Работает! СПАСИБО ПАКС!!!

Только для обращения надо использовать MeshRenderer.sharedMaterials[0], чтобы материал с MeshRenderer не слетел.

PS. Твоя школа.
__________________
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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