Вопрос-[ответ] по Unity
| |
QWER56 | Дата: Понедельник, 09 Августа 2010, 10:58 | Сообщение # 1 |
старожил
Сейчас нет на сайте
| Вопрос-[Ответ] по Unity3d
База скриптов Unity3d Курс Уроков по Unity 3D от Alcatraz
ConsMark - поисковик по интернет магазинам.
Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54 |
|
| |
05142 | Дата: Пятница, 02 Декабря 2011, 14:02 | Сообщение # 1161 |
постоянный участник
Сейчас нет на сайте
| noTformaT, думаю он о другом смотри, объясню на примере вот есть gameobject в координатах (5,5,5) если в скрипт написать Code transform.Translate(1,0,1); то координаты будут (6,5,6)
если же написать Code transform.position = new Vector3(1,0,1); то координаты будут (1,0,1)
тоесть одно просто смещает объект, а второе указывает позицию объекта
mecinvader
|
|
| |
andarky | Дата: Пятница, 02 Декабря 2011, 15:59 | Сообщение # 1162 |
старожил
Сейчас нет на сайте
| вопрос возник вот почему: я использую стандартный FPS-контроллер, который доработал сам, переписав MouseLook на JS, добавив регулировку высоты камеры средней кнопкой.
у меня есть земля и дом многоэтажный.
этажи я переклюаю так: Code level1.transform.position.y=startPosition.y; level2.transform.position.y=1000; чтоб выкинуть второй этаж и видеть срез первого
НО! находясь на втором меня тоже кидает вверх и потом я доооооооооооолго падаю вниз
приходится так писать: Code OnMouseDown() { if (glob.lev==1) { level1.transform.position.y=startPosition.y; level2.transform.position.y=1000; level3.transform.position.y=1000; ... } if (glob.lev==2) { level1.transform.position.y=glob.lev1startPosition.y; level2.transform.position.y=glob.lev2startPosition.y; ... }
.... OnMouseUp() { player.transform.position.y=glob.lev<n>startPosition.y+0.5;
}
становишся чуть выше свое позиции только после отжатия мыши, но все равно ведь мелькает изображение запредельно области 1000.y
с 1-го на 2-й, с в 2-го на 3-й и т.д. - без проблем. А вот сверху вниз - жо...
ПОЧЕМУ так??Добавлено (02.12.2011, 15:59) --------------------------------------------- 05142, ты почти угадал!
Моя страничка по дизайну GameDev//Design//3D Ютубчик
Сообщение отредактировал andarky - Пятница, 02 Декабря 2011, 15:58 |
|
| |
pixeye | Дата: Пятница, 02 Декабря 2011, 16:15 | Сообщение # 1163 |
Red Winter Software
Сейчас нет на сайте
| Quote (andarky) у меня есть земля и дом многоэтажный.
этажи я переклюаю так:
Пока не очень понятно, эмм - ты двигаешь этажи в пространстве?
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
|
|
| |
andarky | Дата: Пятница, 02 Декабря 2011, 16:31 | Сообщение # 1164 |
старожил
Сейчас нет на сайте
| pixeye, да именно, там на к этажам привязана куча объектиков, я сначала пробовал делать этажу renderer.enabled=false но там очень много объектов получилось.
А вообще: я могу ходить вокруг дома, заходить в него, переключаю этажи видя срез (как СИМС)
Моя страничка по дизайну GameDev//Design//3D Ютубчик
|
|
| |
noTformaT | Дата: Пятница, 02 Декабря 2011, 16:32 | Сообщение # 1165 |
Ukrainian independent game developer
Сейчас нет на сайте
| Quote (andarky) да именно, там на к этажам привязана куча объектиков, ммм,надо двигать гг и его камеру, но точно не этажи....
@noTformaT
|
|
| |
pixeye | Дата: Пятница, 02 Декабря 2011, 16:39 | Сообщение # 1166 |
Red Winter Software
Сейчас нет на сайте
| Quote (andarky) pixeye, да именно, там на к этажам привязана куча объектиков, я сначала пробовал делать этажу renderer.enabled=false но там очень много объектов получилось.
Забудь об этом - очень плохой и не очевидный вариант, геморроя больше. Ммм тебе нужно скрывать не этаж а все, что находится внутри, ну тебеж надо стены снаружи видеть? Тут еще вопрос в том, переходя на второй этаж у тебя нет никаких ситуаций когда надо видеть этаж ниже? ( лестничный пролет, или незнаю просто дыра на полу).
Если тебе нужно отключить этаж полностью я бы поступал так - создавал листинг объектов на этаже, если у тебя есть какие объекты которые динамически добавляются на этаж от действий игрока их тоже надо заносить в листинг, потом бы прогонял все объекты и отключал их полностью. ( Если у тебя объекты статичны то загонять их в один меш и отключать совсем станет просто )
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
Сообщение отредактировал pixeye - Пятница, 02 Декабря 2011, 16:41 |
|
| |
andarky | Дата: Пятница, 02 Декабря 2011, 16:55 | Сообщение # 1167 |
старожил
Сейчас нет на сайте
| дело в том, что объекты все активны и имеют свои свойства видимости (т.е. у каждого свои настройки render.enabled) если я их все отключу, то включив включатся все.
Им мне нужно видеть все что нужно. Например верхний этаж может быть просто мостик, нужно видеть то что внизу
Моя страничка по дизайну GameDev//Design//3D Ютубчик
|
|
| |
pixeye | Дата: Пятница, 02 Декабря 2011, 17:07 | Сообщение # 1168 |
Red Winter Software
Сейчас нет на сайте
| Quote (andarky) дело в том, что объекты все активны и имеют свои свойства видимости (т.е. у каждого свои настройки render.enabled) если я их все отключу, то включив включатся все.
Им мне нужно видеть все что нужно. Например верхний этаж может быть просто мостик, нужно видеть то что внизу
Если у тебя будет список объектов то ты сможешь сделать проверку, например, если они никак не в зоне видимости игрока - то отключить.Добавлено (02.12.2011, 17:07) --------------------------------------------- Вот, давай так - ты сейчас подробно опишешь то что хочешь сделать, твой отрезок кода посмотрел и он сейчас путает.
Просто скажи как все должно работать и будем от этого отталкиваться.
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
|
|
| |
andarky | Дата: Пятница, 02 Декабря 2011, 17:09 | Сообщение # 1169 |
старожил
Сейчас нет на сайте
| pixeye, допустим, что я сделал всему этажу с 50 объектами Render.enabled=false; НО я все же не смогу тыкать на объекты своего этажа, т.к. то что надо мной хоть и невидимо, но колайдеры имеет.
и вообще что такого страшного, что объект перемещаю далеко-далеко. Не видим - значит не рендеритсяДобавлено (02.12.2011, 17:09) --------------------------------------------- забыл.... вверх смотреть я не могу.
Моя страничка по дизайну GameDev//Design//3D Ютубчик
|
|
| |
pixeye | Дата: Пятница, 02 Декабря 2011, 17:12 | Сообщение # 1170 |
Red Winter Software
Сейчас нет на сайте
| Quote (andarky) допустим, что я сделал всему этажу с 50 объектами Render.enabled=false; НО я все же не смогу тыкать на объекты своего этажа, т.к. то что надо мной хоть и невидимо, но колайдеры имеет.
Отключи объекты полностью. А не только рендер.
Насчет перемещений - может и ничего страшного, но создает лишнюю путанницу и вероятность ошибиться.
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
|
|
| |
andarky | Дата: Пятница, 02 Декабря 2011, 17:31 | Сообщение # 1171 |
старожил
Сейчас нет на сайте
| pixeye, но ведь написать level1.y=1 level2.y=1000 level3.y=1000 level4.y=1000 level5.y=1000 намного проще чем создавать массив для хранения свойств видимости и наличия коллайдера
Как написать цикл меняющий все свойства чилдренов - я знаю, а если у чилдрена есть свои чилдрены, а у тех еще свио подчилдрены... ужас как тут быть? еще больше путаницы
и еще объекты на этаже я могу создавать/удалять, а количество этажей не меняется - с этим все ясно и понятно где тут можно ошибится
Моя страничка по дизайну GameDev//Design//3D Ютубчик
|
|
| |
pixeye | Дата: Пятница, 02 Декабря 2011, 17:35 | Сообщение # 1172 |
Red Winter Software
Сейчас нет на сайте
| Quote (andarky) но ведь написать level1.y=1 level2.y=1000 level3.y=1000 level4.y=1000 level5.y=1000 намного проще чем создавать массив для хранения свойств видимости и наличия коллайдера
Как написать цикл меняющий все свойства чилдренов - я знаю, а если у чилдрена есть свои чилдрены, а у тех еще свио подчилдрены... ужас как тут быть? еще больше путаницы
Проще не значит правильно или верно. Сейчас эта простота тебе помогает - но вот возникнет ситуация когда из за своей лени или не желания лишний раз что-то прописать у тебя игра полетит. И придется переписывать еще больше))
Напиши что ты конкретно хотел сделать и будем думать дальше.
А лучше в лс мне скинь сцену в юнити, так бы легче было
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
Сообщение отредактировал pixeye - Пятница, 02 Декабря 2011, 17:38 |
|
| |
RipDev | Дата: Пятница, 02 Декабря 2011, 18:02 | Сообщение # 1173 |
гейм-дизайнер
Сейчас нет на сайте
| Top Down Shooter? Какой то подход странный, дели этажи и объекты по слоям, потом отключай то чего не надо.
Взгляни на сей изукрашенный образ, на тело, полное изъянов, составленное из частей, болезненное, исполненное многих мыслей, в которых нет ни определённости, ни постоянства.
|
|
| |
Levin | Дата: Пятница, 02 Декабря 2011, 23:30 | Сообщение # 1174 |
Художник
Сейчас нет на сайте
| вот идешь ты, идешь. и тут резко проигрывается звук, и фоновый звук как сделать, в определенной части карты
|
|
| |
RipDev | Дата: Пятница, 02 Декабря 2011, 23:56 | Сообщение # 1175 |
гейм-дизайнер
Сейчас нет на сайте
| Levin, Поставить тригер.
Взгляни на сей изукрашенный образ, на тело, полное изъянов, составленное из частей, болезненное, исполненное многих мыслей, в которых нет ни определённости, ни постоянства.
|
|
| |
iXerox | Дата: Суббота, 03 Декабря 2011, 03:40 | Сообщение # 1176 |
частый гость
Сейчас нет на сайте
| У меня вопросик. Хочу, что бы, когда я жму на Cube, то на нем менялась текстура. Подскажите пожалуйста как это можно реализовать на JavaScript? Добавлено (03.12.2011, 03:36) --------------------------------------------- Вот, сам нашел. Кому надо - ловите: Code var pressed = 0; var clear_o : Texture; var point_o : Texture; var goto_o : Texture;
function Update() { var ray : Ray = Camera.main.ScreenPointToRay (Input.mousePosition); var hit : RaycastHit; if (collider.Raycast (ray, hit, 100.0)) { if(pressed==0) { renderer.material.mainTexture = point_o; pressed = 1; } else if(pressed==1) { renderer.material.mainTexture = goto_o; pressed = 2; } else if(pressed==2) { pressed = 0; } } } Добавлено (03.12.2011, 03:40) --------------------------------------------- Только, почему-то данный скрипт не работает на iOS. Может кто-нибудь помочь?
|
|
| |
M1ghtMortal | Дата: Суббота, 03 Декабря 2011, 09:02 | Сообщение # 1177 |
участник
Сейчас нет на сайте
| iXerox, Для того, что бы на iOS работало нужно заменить Input.mousePosition на Touch.position (не уверен, под телефоны не писал).
Java/C++/Unity(C#) Programmer. Мой блог MightMortal.RU
|
|
| |
AtomKrieg | Дата: Суббота, 03 Декабря 2011, 09:03 | Сообщение # 1178 |
частый гость
Сейчас нет на сайте
| Quote (andarky) level1.y=1 level2.y=1000 level3.y=1000 level4.y=1000 level5.y=1000
Они занимают память.
|
|
| |
pixeye | Дата: Суббота, 03 Декабря 2011, 11:58 | Сообщение # 1179 |
Red Winter Software
Сейчас нет на сайте
| Quote (M1ghtMortal) iXerox, Для того, что бы на iOS работало нужно заменить Input.mousePosition на Touch.position (не уверен, под телефоны не писал).
раз не уверен нечего советовать. Для справки.
Input.mouse работает на IOS однако с ним нельзя сделать мултитач. Для мултитача нужно получать значения touch position ( нескольки штук ), так к ак не все игры используют мультитач и если ты уверен что он тебе ненужен то можешь пользовать mouse
Добавлено (03.12.2011, 11:58) --------------------------------------------- Quote (iXerox) Вот, сам нашел. Кому надо - ловите: Твой скрипт неверен. Ты понимаешь что в update после смены значения прессд он будет выполнять цикл дальше тем самым сразу перейдя в прессд 1 и потом в прессд 2?
Чтобы это работало правильно нужно написать так
function Update() { var ray : Ray = Camera.main.ScreenPointToRay (Input.mousePosition); var hit : RaycastHit; if(Input.GetMouseButtonUp(0)){ if (collider.Raycast (ray, hit, 100.0)) { if(pressed==0) { renderer.material.mainTexture = goto_o; pressed = 1;
} else if(pressed==1) { renderer.material.mainTexture = point_o; pressed = 0; }
} } }
Однако сам по себе скрипт конечно все равно не очень. Лично я стараюсь избегать update функции. Неазбуль коллайдер поставить на свой объект. И когда пишешь для айфона на js переключайся на строгую типизацию данных.
#pragma strict в самом начале скрипта поставь. (хотя щас помойму на js в юнити это по умолчанию )
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
Сообщение отредактировал pixeye - Суббота, 03 Декабря 2011, 12:02 |
|
| |
Duskly | Дата: Суббота, 03 Декабря 2011, 20:13 | Сообщение # 1180 |
Rush Games
Сейчас нет на сайте
| дайте прикольные исходники игр
Разрабатываеться: флеш игра для соц. Сетей (Бои друзей) - временное название! 3д игра (пока без названия)
|
|
| |
|