Вопрос-[ответ] по Unity
|
|
QWER56 | Дата: Понедельник, 09 Августа 2010, 10:58 | Сообщение # 1 |
старожил
Сейчас нет на сайте
| Вопрос-[Ответ] по Unity3d
База скриптов Unity3d Курс Уроков по Unity 3D от Alcatraz
ConsMark - поисковик по интернет магазинам.
Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54 |
|
| |
allods | Дата: Понедельник, 18 Апреля 2016, 16:17 | Сообщение # 7761 |
почти ветеран
Сейчас нет на сайте
| Ребят, есть проблема с рендерингом. Есть плашка с любым полупрозрачным шейдером, над ней другая тоже с любым полупрозрачным шейдером шейдером.(партикл шейдеры, транспарент всякие, спрайт шейдер не важно) Проблема в том что когда та плашка что выше находится с лева на экране (левее центра) то она становится темнее как если бы она рендерилась за той что с низу, а когда правее то светлее как еслибы она рендерилась по верху той что с низу. Менял высоту плашки что выше разницы нету. Кто скажет что за херня
ладно, уже сделал по другому
Сообщение отредактировал allods - Понедельник, 18 Апреля 2016, 17:07 |
|
| |
nik3122 | Дата: Понедельник, 18 Апреля 2016, 19:45 | Сообщение # 7762 |
почетный гость
Сейчас нет на сайте
| Есть скрипт при нажатии на кнопку T свет через секунду включатся и выключаться, но проблема в том что свет моргает не так как нужно.
Код using UnityEngine; using System.Collections;
public class BLight : MonoBehaviour { public Light Test; public bool TTT;
void Update () { if (Input.GetKey (KeyCode.T)) { TTT = !TTT; } StartCoroutine(Test4()); } IEnumerator Test4(){ if (TTT) { while (true) { yield return new WaitForSeconds (1f); Test.enabled = false; yield return new WaitForSeconds (1f); Test.enabled = true; } } } }
Проект друзей: Lost World Online – хардкорная многопользовательская онлайн-игра по мотивам книги братьев Стругацких "Пикник на Обочине".
Сообщение отредактировал nik3122 - Понедельник, 18 Апреля 2016, 19:47 |
|
| |
Lertmind | Дата: Понедельник, 18 Апреля 2016, 20:31 | Сообщение # 7763 |
заслуженный участник
Сейчас нет на сайте
| nik3122, естественно, ты каждый Update() запускаешь корутину и их становится несколько. Вот так можно написать:
Код using UnityEngine; using System.Collections;
public class BLight : MonoBehaviour { public Light Test; public bool isRunning;
void Update() { if (Input.GetKeyDown(KeyCode.T)) { isRunning = !isRunning; if (isRunning) { StartCoroutine(Test4()); } } }
IEnumerator Test4() { while (true) { yield return new WaitForSeconds(1f); if (!isRunning) break; Test.enabled = !Test.enabled; } } } При нажатии на T через секунду меняется состояние, если нажать ещё раз, то состояние остаётся.
|
|
| |
nik3122 | Дата: Понедельник, 18 Апреля 2016, 20:36 | Сообщение # 7764 |
почетный гость
Сейчас нет на сайте
| Lertmind, Большое спасибо
Проект друзей: Lost World Online – хардкорная многопользовательская онлайн-игра по мотивам книги братьев Стругацких "Пикник на Обочине".
|
|
| |
Lertmind | Дата: Понедельник, 18 Апреля 2016, 20:51 | Сообщение # 7765 |
заслуженный участник
Сейчас нет на сайте
| nik3122, сделал поправку в коде, иначе при быстром нажатии кнопки будут запускаться несколько корутин:
Код using UnityEngine; using System.Collections;
public class BLight : MonoBehaviour { public Light Test; public bool isRunning; private Coroutine current;
void Update() { if (Input.GetKeyDown(KeyCode.T)) { isRunning = !isRunning; if (isRunning) { current = StartCoroutine(Test4()); } else if (current != null) { StopCoroutine(current); } } }
IEnumerator Test4() { while (true) { yield return new WaitForSeconds(1f); Test.enabled = !Test.enabled; } } } Получилось как-то не очень, но работает.
Добавлено (18 апреля 2016, 20:51) --------------------------------------------- Там выше сделал последнюю правку, чтобы корутин не зависел от isRunning, так лучше.
Сообщение отредактировал Lertmind - Понедельник, 18 Апреля 2016, 20:51 |
|
| |
Бозингар | Дата: Суббота, 23 Апреля 2016, 22:40 | Сообщение # 7766 |
почетный гость
Сейчас нет на сайте
| А можно как-нибудь двигать объект по координатам, не прибегая к точкам пути? Например, высчитываю координаты объекта, по ним задаю новые - и объект движется (при помощи физики) к новым координатам?
#Хийвэл бүү ай, айвал бүү хий.
|
|
| |
Lertmind | Дата: Суббота, 23 Апреля 2016, 23:19 | Сообщение # 7767 |
заслуженный участник
Сейчас нет на сайте
| Бозингар, стоит объяснить подробней. Координаты это и есть точки пути, или ты хочешь поиск пути между препятствиями?
|
|
| |
EchoIT | Дата: Суббота, 23 Апреля 2016, 23:20 | Сообщение # 7768 |
старожил
Сейчас нет на сайте
| Бозингар, эм, new Vector3(x,y,z)?
Долгожданный анонсик: State of War
|
|
| |
8Observer8 | Дата: Воскресенье, 24 Апреля 2016, 00:06 | Сообщение # 7769 |
заслуженный участник
Сейчас нет на сайте
| Бозингар, если нужен поиск пути, то я могу кинуть реализацию алгоритма поиска пути A*:
Сообщение отредактировал 8Observer8 - Воскресенье, 24 Апреля 2016, 00:07 |
|
| |
sirtoo | Дата: Вторник, 26 Апреля 2016, 16:23 | Сообщение # 7770 |
был не раз
Сейчас нет на сайте
| Помогите нубу.
Как настроить "MonoDevelop-Unity" что в нем работало "IntelliSense", то есть подсказки предопределенных методов, например после "Input.", в js.
В VisualStudio все еще мрачнее, он выделяет как ошибку такое определение переменных например:
"var build : Transform;"
P.S. Примеры взяты с видеокурса Часть 1 - Туториал Unity3D
Сообщение отредактировал sirtoo - Вторник, 26 Апреля 2016, 16:33 |
|
| |
8Observer8 | Дата: Вторник, 26 Апреля 2016, 16:31 | Сообщение # 7771 |
заслуженный участник
Сейчас нет на сайте
| Цитата sirtoo ( ) Примеры взяты с видеокурса Часть 1 - Туториал Unity3D Там написано, что видео не существует
|
|
| |
sirtoo | Дата: Вторник, 26 Апреля 2016, 16:32 | Сообщение # 7772 |
был не раз
Сейчас нет на сайте
| Руководство UnityСкриптинг Инструменты Скриптинга MonoDevelop
мне не помогло, а хотелось бы, что все работало как у человека в видео курсе.
Добавлено (26 апреля 2016, 16:32) ---------------------------------------------
Цитата 8Observer8 ( ) Там написано, что видео не существует
вот https://www.youtube.com/watch?v=T78_si40uhI
Сообщение отредактировал sirtoo - Вторник, 26 Апреля 2016, 16:34 |
|
| |
Lertmind | Дата: Вторник, 26 Апреля 2016, 17:08 | Сообщение # 7773 |
заслуженный участник
Сейчас нет на сайте
| sirtoo, я погуглил, в Unity 5.3 удалили поддержку автодополнения кода для JS http://answers.unity3d.com/questio....ng.html. Мой совет - не используй JS, пиши на C#, тут так принято, а JS для отщепенцев. Но если ты не хочешь следовать разумным советам, то есть способ в установки дополнительно старой версии Unity, чтобы использовать прошлую версию MonoDevelop: В Unity 5.3 перешли на MonoDevelop 5, так что тебе надо установить старую версию, например Unity 5.2.4, для этого выбираешь другую папку для установки, например C:\Program Files\Unity524\, потом в новой версии Unity в меню Edit > Preferences > External Tools > External Script Editor ставишь "MonoDevelop (built-in)" на "Browse...", где вручную выбираешь папку до старого MonoDevelop, т. е. C:\Program Files\Unity524\MonoDevelop\bin\MonoDevelop.exe и отмечаешь опцию "Add .unityproj's to .snl". Теперь будет открываться старый MonoDevelop 4 с автодополнением. Ещё возможно потребуется удалить сгенерированные файлы в проекте - удаляешь всё кроме Assets и ProjectSettings.
Сообщение отредактировал Lertmind - Вторник, 26 Апреля 2016, 17:17 |
|
| |
sirtoo | Дата: Вторник, 26 Апреля 2016, 17:31 | Сообщение # 7774 |
был не раз
Сейчас нет на сайте
| Lertmind, спасибо за подробный ответ, понял куда копать ...
а писать на JS просто муветон, или действительно скрипт на C# даст в перспективе профит по производительности ?
|
|
| |
SkorpyX | Дата: Вторник, 26 Апреля 2016, 17:39 | Сообщение # 7775 |
участник
Сейчас нет на сайте
| Цитата sirtoo ( ) а писать на JS просто муветон, или действительно скрипт на C# даст в перспективе профит по производительности ?
Я пишу на JS в UnityDevelop 4, автодополнение работает. JS компилируется в C# код. Это можно увидеть открыв Assembly-UnityScript в ILSpy
Сообщение отредактировал SkorpyX - Вторник, 26 Апреля 2016, 17:44 |
|
| |
Lertmind | Дата: Вторник, 26 Апреля 2016, 18:01 | Сообщение # 7776 |
заслуженный участник
Сейчас нет на сайте
| sirtoo, просто моветон. Большинство обучалок как раз на C# и есть ограничения для JS. Кроме этого, были проблемы если смешивать скрипты на разных языках - лучше начинать писать C# с самого начала. Добавлено (26 апреля 2016, 18:01) ---------------------------------------------
Цитата SkorpyX ( ) JS компилируется в C# код Скорее компилируется в СIL-код.
|
|
| |
SkorpyX | Дата: Вторник, 26 Апреля 2016, 18:04 | Сообщение # 7777 |
участник
Сейчас нет на сайте
| Цитата Lertmind ( ) Скорее компилируется в СIL-код. Ну смысл в том, что они компилируются в одно и тоже, а следовательно производительность практически одинаковая
|
|
| |
Lertmind | Дата: Вторник, 26 Апреля 2016, 18:06 | Сообщение # 7778 |
заслуженный участник
Сейчас нет на сайте
| SkorpyX, с другим не спорил, так и есть)
|
|
| |
seaman | Дата: Вторник, 26 Апреля 2016, 21:47 | Сообщение # 7779 |
старожил
Сейчас нет на сайте
| Производительность отличается. Не везде и ненамного. Т.к. компиляторы разные - получается немного разный MSIL. По тому что было когда то опубликовано ( искать не буду - лень) - JS местами медленнее. Еще раз - не везде и ненамного.
|
|
| |
8Observer8 | Дата: Вторник, 26 Апреля 2016, 22:44 | Сообщение # 7780 |
заслуженный участник
Сейчас нет на сайте
| Цитата sirtoo ( ) или действительно скрипт на C# даст в перспективе профит по производительности ? Скорее, профит будет из-за производительности в работе, так как большинство использует C#, то вы сможете качать чужие игры из туторов, примеры из книг и ассеты из Asset Store Проще будет понимать. А вообеще это дело вкуса. Вы можете научиться читать реализацию на C# и брать идеи в свои поекты на JS и обратно. Правда, иногда бывает своя специфика привязанная к конкретному языку
Сообщение отредактировал 8Observer8 - Вторник, 26 Апреля 2016, 22:47 |
|
| |