Вопрос-[ответ] по Unity
|
|
QWER56 | Дата: Понедельник, 09 Августа 2010, 10:58 | Сообщение # 1 |
старожил
Сейчас нет на сайте
| Вопрос-[Ответ] по Unity3d
База скриптов Unity3d Курс Уроков по Unity 3D от Alcatraz
ConsMark - поисковик по интернет магазинам.
Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54 |
|
| |
beril | Дата: Суббота, 16 Августа 2014, 19:06 | Сообщение # 6421 |
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
| Ну если меняшь позицию родителя, то детишки тоже изменять позицию относительно родителя
Накодил? Убери за собой! Инвентарь в Unity(UI) Инвентарь в Unity(GUI)
|
|
| |
Artaniel | Дата: Суббота, 16 Августа 2014, 22:00 | Сообщение # 6422 |
частый гость
Сейчас нет на сайте
| Да, боюсь простого способа нет. Надо както запомнить список детей, оторвать их от папы ( .transform.parent = null), переместить папу, потом снова задать детям папу. Если папа пустой, чистый пивот, то можно заспавнить нового, поставить в новом месте и за один обход детей сменить им папу. Не забыть обновить все ссылки на объект во всех скриптах. Можно попробовать записать кудато позиции-ротации детей, подвинуть папу и сразу присвоить детям их старые позиции-ротации.
|
|
| |
SarCasm | Дата: Суббота, 16 Августа 2014, 22:45 | Сообщение # 6423 |
заслуженный участник
Сейчас нет на сайте
| Artaniel, грустнявость, этого мне делать и не хотелось(
Моя игра Gamiron#11 - Тема Скачать
|
|
| |
MANMANA | Дата: Суббота, 16 Августа 2014, 23:32 | Сообщение # 6424 |
почти ветеран
Сейчас нет на сайте
| записать всех деток в массив Transform[] myChildren = gameObject.GetComponentsInChildren<Transform>(); в цикле им прибавить/вычесть вектор будущего смещения папы. потом перемещать папу на величину смещения. так не пойдет? а если так:
aChildren = transform.Find("firstChild/secondChild/thirdChild"); aChildren.Translate(-Vector3.forward); aParent.Translate(Vector3.forward);
http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг VKонтакте 3Dbuffer
Последнее:
Новый раздел "Текстуры"
Как запатентовать, защитить техническое решение, игру, идею
Сообщение отредактировал MANMANA - Воскресенье, 17 Августа 2014, 00:54 |
|
| |
Markoffka | Дата: Воскресенье, 17 Августа 2014, 13:57 | Сообщение # 6425 |
Pixel Logic
Сейчас нет на сайте
| SarCasm, transform?
|
|
| |
SarCasm | Дата: Воскресенье, 17 Августа 2014, 14:18 | Сообщение # 6426 |
заслуженный участник
Сейчас нет на сайте
| MANMANA, да переместить все чилды то что нужно
Моя игра Gamiron#11 - Тема Скачать
|
|
| |
error111 | Дата: Пятница, 22 Августа 2014, 13:12 | Сообщение # 6427 |
заслуженный участник
Сейчас нет на сайте
| Делаю простенький шмап. Есть ГО который враг, на нем висит rigidbody2d и скрипт в котором в Старте ГО сообщается ЭддФорсе Код Start() { rigidbody2D.AddForce(new Vector2(0, -moveSpeed)); } Таким образом ГО спускается с верха экрана вниз. Что мне надо - по средствам изменения булевой isMoving останавливать когда надо и когда надо снова придавать ГО силу для движения. Останавливаю его через Код void StopEnemy(){ rigidbody2D.AddForce(new Vector2(0, moveSpeed)); } Запускаю по новой как несложно догадаться через Код void GoEnemy(){ rigidbody2D.AddForce(new Vector2(0, -moveSpeed)); } Как реализовать отслеживание булевой и корректный запуск ГО понять не могу. Изменения булевой отслеживаются в Update() ну или FixedUpdate() так как я использую физику. И соответственно если Код Update(){ if (isMoving) GoEnemy(); else StopEnemy(); } то и AddForce из этих функций будет выполняться каждый кадр, что нафиг не надо так как объект улетает из поля зрения с дикой скоростью. Как можно отследить буль, но вызвать функцию с эддФорс только 1 раз?..
[Shmup/RPG] Fantasy Shmup!
|
|
| |
Artaniel | Дата: Пятница, 22 Августа 2014, 16:31 | Сообщение # 6428 |
частый гость
Сейчас нет на сайте
| error111, самое простое, там где ты меняешь значение isMoving, сразу же запускать GoEnemy() или StopEnemy(). Сложнее, делаем еще одну bool переменную LastIsMoving Код if (LastIsMoving!=isMoving) { //сюда мы попадем только если isMoving в этом фрейме не такое как в прошлом if (isMoving) GoEnemy(); else StopEnemy(); } LastIsMoving = isMoving; Таким образом мы помним двигались мы или нет в прошлом фрейме, и если это изменилось, меняем и силы.
|
|
| |
MR_Borg | Дата: Пятница, 22 Августа 2014, 18:07 | Сообщение # 6429 |
участник
Сейчас нет на сайте
| Всем привет, в основном изучаю С++ и всегда работал с 2д движками,(С++ и делфи). Решил попробовать силы в 3д, т.к. 2д уже достало . Пока читаю документацию и оф форум. Думаю начать изучение либо с irrlicht т.к. он на С++, либо изучать Юнити с C#, тем кто пользуется Юнити подскажите как он в плане производительности и функционала. Пока буду разрабатывать приложения под Винду.
Изучаю C++ попутно пишу игру.
|
|
| |
Adom | Дата: Пятница, 22 Августа 2014, 21:21 | Сообщение # 6430 |
Печенька!
Сейчас нет на сайте
| Люди такой вопрос , внезапно начала лагать Unity причем так что всеее происходит ооочень медленно , что-бы открыть папку уходит 1-2 минуты я даже переустанавливал но не вышло решить проблему (( Думал что проблема в модели (ибо полигов там много), но я убрал и ничего не вышло ((( В общем помогите !
|
|
| |
last2424 | Дата: Пятница, 22 Августа 2014, 21:34 | Сообщение # 6431 |
30 мл. блоков
Сейчас нет на сайте
| Adom, выкинуть из окна комп.
Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
|
|
| |
Adom | Дата: Пятница, 22 Августа 2014, 22:28 | Сообщение # 6432 |
Печенька!
Сейчас нет на сайте
| last2424, Не смешно раньше этих лагов небыло
|
|
| |
beril | Дата: Пятница, 22 Августа 2014, 22:44 | Сообщение # 6433 |
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
| Посмотри насколь загружен ЦП и Оперативка в этот момент. Поставь высокий приоритет для Unity. Если не хватает оперативки, закрой "толстые" приложения.
У меня такое тоже бывает, когда макс, фотошоп и 2 проекта в юнити открыты одновременно
Накодил? Убери за собой! Инвентарь в Unity(UI) Инвентарь в Unity(GUI)
|
|
| |
Adom | Дата: Пятница, 22 Августа 2014, 22:56 | Сообщение # 6434 |
Печенька!
Сейчас нет на сайте
| beril, ЦП-22%, оперативка 26% , думаю проблема в Windows ибо она у меня сама по себе лагает т.е достаточно свернуть окно как все зависло , вот кажись придется снова винду менять.
|
|
| |
|
Adom | Дата: Суббота, 23 Августа 2014, 20:23 | Сообщение # 6436 |
Печенька!
Сейчас нет на сайте
| beril, Дык чистая винда , каждую неделю чищу . Добавлено (23.08.2014, 20:23) --------------------------------------------- Вот вопрос , Код public Transform []House; Как в такой массив добавить строчку ? Т.е я понял как можно пихать туда объекты , но перед тем как их туда пихнуть в инспекторе нужно увеличить кол-во этих мест в которые пихаются объекты , как увеличить их через скрипт ?
|
|
| |
GantZ_Yaka | Дата: Суббота, 23 Августа 2014, 21:22 | Сообщение # 6437 |
почетный гость
Сейчас нет на сайте
| Adom, Код House = new Transform[10]; У массивов изменить размер можно занова его создав, предыдущие значения элементов при этом потеряются. Если предполагается часто менять количество элементов, лучше пользоваться списками List (using System.Collections.Generic)
|
|
| |
Левша | Дата: Суббота, 23 Августа 2014, 21:37 | Сообщение # 6438 |
почти ветеран
Сейчас нет на сайте
| Используй динамические массивы. http://habrahabr.ru/post/142285/
X.cor.R (Prologue)
Сообщение отредактировал Левша - Суббота, 23 Августа 2014, 21:37 |
|
| |
Adom | Дата: Суббота, 23 Августа 2014, 22:27 | Сообщение # 6439 |
Печенька!
Сейчас нет на сайте
| Левша, Я попробовал использовать ArrayList , но почему-то эта строка не выводилась в инспекторе ... Добавлено (23.08.2014, 22:27) --------------------------------------------- GantZ_Yaka, Спасибо , сейчас прочитал справку и сделал И вот еще вопрос вот строчка кратко объясню , как-только появляется объект с имением House , то это объект заноситься в массив , но тут проблема она запихивает туда много ооочень много , как это ограничить ? Что-бы только один объект пихался ,а после появления еще одного пихался это новый объект. Код if (GameObject.Find ("House(Clone)")) { House.Add(GameObject.FindWithTag ("House").transform); }
|
|
| |
GantZ_Yaka | Дата: Суббота, 23 Августа 2014, 23:15 | Сообщение # 6440 |
почетный гость
Сейчас нет на сайте
| А вот не надо в апдейте бесконечно искать и добавлять объект House в сцене Совать в список объект надо лишь один раз - при его создании. Лучше всего это сделать скриптом на префабе объекта House, где в старте прописать поиск объекта, который хранит этот список, и занесение в его список ссылку на себя.
|
|
| |