| Вопрос-[ответ] по 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)---------------------------------------------
 
 Скорее компилируется в СIL-код.Цитата SkorpyX (  ) JS компилируется в C# код |  |  |  |  | 
| 
| 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 |  |  |  |  |