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

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

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

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

Ответ
 
Опции темы
Старый 24.03.2012, 13:47   #736
Nuprahtor
Элита
 
Аватар для Nuprahtor
 
Регистрация: 26.07.2008
Сообщений: 1,972
Написано 1,095 полезных сообщений
(для 3,923 пользователей)
Ответ: Фак по Юнити.

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

С другой стороны можно использовать какую-то внешнюю программу, которая может считать время работы Unity.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 24.03.2012, 13:57   #738
Nuprahtor
Элита
 
Аватар для Nuprahtor
 
Регистрация: 26.07.2008
Сообщений: 1,972
Написано 1,095 полезных сообщений
(для 3,923 пользователей)
Ответ: Фак по Юнити.

Я просматривал такие программы, они считывают время Unity, но в целом, а я хотел бы такую фичу для каждого проекта (как в FL Studio, например, или в MapZone2).
Все же, проживу и без этой фичи.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
pax (24.03.2012)
Старый 25.03.2012, 16:57   #739
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений
(для 357 пользователей)
Ответ: Фак по Юнити.

Как же плохо, что в инспекторе не отображаются свойства. Можно как-то обработать изменение поля в инспекторе?
Есть у меня скрипт Plane. Для удобства я в скрипте добавляю, настраиваю и скрываю MeshFilter и MeshRenderer. Но нужно как-то из скрипта Plane изменять материал. Да и не плохо было бы поле сделать, которое изменяло бы цвет, причем не материала, а вершин, для большей скорости.
(Offline)
 
Ответить с цитированием
Старый 25.03.2012, 17:44   #740
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

http://unity3d.com/support/documenta...ce/Editor.html
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 25.03.2012, 18:45   #741
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений
(для 357 пользователей)
Ответ: Фак по Юнити.

к Editor'у всегда можно обратиться.
В чем отличие sharedMaterial от material? Я так понимаю sharedMaterial надо использовать для чтения, а material для записи, но почему так.
И я так понимаю в шейдере можно отключить цвет вершин? А то в Unlit шейдерах цвет не работает(
(Offline)
 
Ответить с цитированием
Старый 25.03.2012, 19:07   #742
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

sharedMaterial общий материал на все экземпляры, при изменении - меняется ан всех моделях, material - индивидуальный(становится индивидуальным при изменении)
Можно включить, в большинстве случаев он не используется.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 25.03.2012, 19:49   #743
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений
(для 357 пользователей)
Ответ: Фак по Юнити.

Сообщение от pax Посмотреть сообщение
Можно включить, в большинстве случаев он не используется.
Только, если через материал изменять цвет, то батчинг перестает работать(
Сейчас заметил какую-то странность. Есть поле [SerializeField] private Color color; Если в редакторе я его изменяю в своем Editor'е, то при запуске игры цвет меняется на прежний, а если через дефолтный инспектор меняю, то все норм. Как это понимать? Да и раньше не сталкивался с таким. Скрипт помечен как ExecuteInEditMode.
(Offline)
 
Ответить с цитированием
Старый 25.03.2012, 20:33   #744
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

http://unity3d.com/support/documenta....SetDirty.html
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 28.03.2012, 19:12   #745
SaM_
ПроЭктировщик
 
Аватар для SaM_
 
Регистрация: 15.06.2011
Сообщений: 111
Написано 2 полезных сообщений
(для 3 пользователей)
Ответ: Фак по Юнити.

Делаю пик-ап предметов.
Система для подъема такая: если персонаж находится на каком-то расстоянии от предмета с тегом 'tk', то при нажатии клавиши персонаж его "подымает", при нажатии той же клавиши еще раз - "бросает".

Проблема в том, что если положить префаб предмета на сцену при её редактировании и запустить проект, то поднять этот предмет персонаж сможет. При бросании спавнится предмет из того-же прифаба, с тем же тегом, но его поднять уже не получается. Почему?
(Offline)
 
Ответить с цитированием
Старый 28.03.2012, 19:44   #746
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Фак по Юнити.

Каким образом ты находишь список предметов, исходя из которых вычисляешь расстояние и далее поднимаешь?
Видимо ошибко в твоём коде, где-то логически ты возможно указал конкретный предмет, что использует его идентификатор, и при повторном спауне, его идентификатор меняется.
(Offline)
 
Ответить с цитированием
Старый 28.03.2012, 19:59   #747
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

Пример:

private GameObject pickedGO null;
    public 
float distance;

    public 
void Update()
    {
        if(
Input.GetMouseButtonDown(0))
        {
            if(
pickedGO!= null)
            {
                Throw(
pickedGO);
                
pickedGO null;
            }
            else
            {

                var 
distToPickedObject float.MaxValue;
                
GameObject picked null;
                foreach (var 
obj in GameObject.FindGameObjectsWithTag("tk"))
                {
                    var 
dist Vector3.Distance(obj.transform.positiontransform.position);
                    if(
dist<distToPickedObject)
                    {
                        
distToPickedObject dist;
                        
picked obj;
                    }
                }

                if (
picked != null && distToPickedObject <= distance)
                {
                    
PickUp(picked);
                    
pickedGO picked;
                }
            }
        }
    } 
функции Throw и PickUp надо создать самостоятельно для обработки бросания и подбора объекта соответственно.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
SaM_ (28.03.2012)
Старый 28.03.2012, 20:02   #748
SaM_
ПроЭктировщик
 
Аватар для SaM_
 
Регистрация: 15.06.2011
Сообщений: 111
Написано 2 полезных сообщений
(для 3 пользователей)
Ответ: Фак по Юнити.

MoKa, вот так я определяю предмет:
obj_rv_wp = GameObject.FindGameObjectWithTag("rv01").transform;
Так расстояние ('private Transform thtr;'):
Vector3.Distance(obj_rv_wp.position, thtr.position) < 4.0f
Ключевую роль здесь играет тег. Я попробовал заспавнить несколько одинаковых объектов из одного прифаба - теги у всех одинаковые. Но скрипт реагирует на предмет с тем же тегом, но установленным на сцену при её редактировании.
(Offline)
 
Ответить с цитированием
Старый 28.03.2012, 20:36   #749
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Фак по Юнити.

FindGameObjectWithTag, возвращает один объект, а не список объектов.
Тебе нужен список объектов, и затем цикл с проверкой на расстояния.
Посмотри на пример который привёл pax.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
SaM_ (28.03.2012)
Старый 28.03.2012, 22:02   #750
SaM_
ПроЭктировщик
 
Аватар для SaM_
 
Регистрация: 15.06.2011
Сообщений: 111
Написано 2 полезных сообщений
(для 3 пользователей)
Ответ: Фак по Юнити.

Как исправить данную ошибку? Скрипт не может найти предмет, координаты которого я пытаюсь узнать, хотя на сцене он присутствует.
error CS1061: Type `UnityEngine.GameObject' does not contain a definition for `position' and no extension method `position' of type `UnityEngine.GameObject' could be found (are you missing a using directive or an assembly reference?)
GameObject[] weaps = GameObject.FindGameObjectsWithTag("rv"); 
foreach (GameObject weap in weaps) { 
  if  (Vector3.Distance(weap.position, myTransform.position) < 4.0F) {
    if (Input.GetKeyUp("g")) { 
      weapon2_e = true; weapon1_e = false; weapon2_e = false;
      weapon2_rv_pick = true; }
    } 
}
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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