Результаты поиска
| |
Lertmind | Дата: Пятница, 06 Мая 2016, 22:39 | Сообщение # 341 | Тема: Вопрос-[ответ] по Unity |
заслуженный участник
Сейчас нет на сайте
| Maxplant, если коротко: сделай чтобы не прыгал выше или не было двойного свайпа. На самом деле, если даже случается двойной свайп, ты должен проверять - герой в прыжке или нет, чтобы не допускать второго прыжка. Только после решения этой проблемы, уже ищи проблему в двойной свайпе.
|
|
| |
Lertmind | Дата: Пятница, 06 Мая 2016, 19:37 | Сообщение # 342 | Тема: Неудобные кликания по интерфейсу и глючные выделения |
заслуженный участник
Сейчас нет на сайте
| Ты не рассказал, как менял ПКМ на ЛКМ, потому что когда в настройках меняешь Select With на Left, всё работает нормально. Ты не сказал на какой ОС работаешь, под Windows с 3+ кнопочной мышкой проблем быть не должно.
|
|
| |
Lertmind | Дата: Четверг, 05 Мая 2016, 22:20 | Сообщение # 343 | Тема: Очередь отрисов в шейдерах (Unity 5) |
заслуженный участник
Сейчас нет на сайте
| Пересмотрел примеры в инете, должно бы работать, но почему-то не работает. Проблема не в очерёдности, а в alpha. Заметил такую штуку, когда в настройках Camera ставишь Clear Flags отличное от Skybox, то всё работает. Можно даже использовать такой костыль: первая камера рисует только Skybox (Clear Flags -> Skybox, Culling Mask -> Nothing, Depth -> -1), вторая всё остальное (Clear Flags -> Don't Clear либо Depth only, Culling Mask -> Everything, Depth -> 0).
|
|
| |
Lertmind | Дата: Вторник, 03 Мая 2016, 19:16 | Сообщение # 344 | Тема: Создание массива объектов по возрастанию переменной |
заслуженный участник
Сейчас нет на сайте
| К слову, массивы можно сортировать через Array.Sort, например вектора по x:
Код Array.Sort<Vector3>(vecs, (v1, v2) => (v1.x.CompareTo(v2.x)));
|
|
| |
Lertmind | Дата: Вторник, 03 Мая 2016, 18:47 | Сообщение # 345 | Тема: Получить gameobject в котором сработало событие OnMouseDown |
заслуженный участник
Сейчас нет на сайте
| 8Observer8, мог бы сам) Если что, вот так при клике меняется размер InputField для первого способа:
Код using UnityEngine; using UnityEngine.EventSystems;
public class Test1 : MonoBehaviour, IPointerClickHandler { #region IPointerClickHandler implementation
public void OnPointerClick(PointerEventData eventData) { // RectTransform наследуется от Transform, значит можем привести RectTransform rt = (RectTransform)transform; // Свойства Width и Height у RectTransform в Инспекторе rt.sizeDelta = new Vector2(300f, 100f); }
#endregion } для второго способа:
Код using UnityEngine; using UnityEngine.EventSystems;
public class Test2 : MonoBehaviour { public void PointerClick(PointerEventData eventData) { // Получаем GO на который кликнули GameObject go = eventData.selectedObject; // Делаем тоже самое, что в OnPointerClick RectTransform rt = (RectTransform)go.transform; rt.sizeDelta = new Vector2(300f, 100f); } }
|
|
| |
Lertmind | Дата: Вторник, 03 Мая 2016, 18:14 | Сообщение # 346 | Тема: Вопрос-[ответ] по Unity |
заслуженный участник
Сейчас нет на сайте
| Sanprabhu, думаю, нормально. Когда делаешь Instantiate (без пула объектов), то сразу вызывается Awake у скриптов, это типа конструктора без параметров, после уже заполняешь нужные свойства или выполняешь вызовы у компонентов. Для больших проектов, возможно стоит использовать IoC/DI фреймворков, для Unity есть такие: http://strangeioc.github.io/strangeioc/, https://github.com/modesttree/Zenject, https://github.com/intentor/adic.
|
|
| |
Lertmind | Дата: Вторник, 03 Мая 2016, 08:31 | Сообщение # 347 | Тема: Получить gameobject в котором сработало событие OnMouseDown |
заслуженный участник
Сейчас нет на сайте
| timur2008, это элемент UI, ему не нужен коллайдер. Чтобы узнать, когда произошёл клик на элемент UI, реализуешь интерфейс IPointerClickHandler, и этот скрипт вешаешь на элемент, например:
Код using UnityEngine; using UnityEngine.EventSystems;
public class Test1 : MonoBehaviour, IPointerClickHandler { #region IPointerClickHandler implementation
public void OnPointerClick(PointerEventData eventData) { Debug.Log("Click"); }
#endregion }
Как вариант, добавляешь на InputField компонент EventTrigger, там добавляешь событие PointerClick, потом выбираешь объект на сцене и метод у одного из его компонентов, который будет вызван при клике. На этом видео это происходит для Image https://youtu.be/3NBYqPAA5Es?t=221
Сообщение отредактировал Lertmind - Вторник, 03 Мая 2016, 08:34 |
|
| | |
Lertmind | Дата: Воскресенье, 01 Мая 2016, 21:22 | Сообщение # 349 | Тема: Помощь в создании кликер-симулятора. |
заслуженный участник
Сейчас нет на сайте
| Самое простое: делаешь все вкладки в одном Canvas и отключаешь все, кроме одной, когда нажимаются кнопки для перехода на другую вкладку, ты текущую отключаешь, другую включаешь через SetActive. Будет очень глупо для каждой вкладки создавать новую сцену.
|
|
| |
Lertmind | Дата: Воскресенье, 01 Мая 2016, 21:05 | Сообщение # 350 | Тема: Загрузка пользовательских файлов |
заслуженный участник
Сейчас нет на сайте
| Здесь готовый пример http://answers.unity3d.com/questio....ry.html, только для mp3 придётся проделать дополнительную работу, там написано об этом.
|
|
| |
Lertmind | Дата: Суббота, 30 Апреля 2016, 02:31 | Сообщение # 351 | Тема: Вопрос-[ответ] по Unity |
заслуженный участник
Сейчас нет на сайте
| Sanprabhu, самый простой вариант: в одном скрипте с помощью Physics.Raycast узнаешь в кого кликнули, на основе этого и делаешь взаимодействие. Остальное уже зависит от твоей логики взаимодействия между объектами.
|
|
| |
Lertmind | Дата: Вторник, 26 Апреля 2016, 23:47 | Сообщение # 352 | Тема: Нужно назначить родителя для группы объектов с помощью C#! |
заслуженный участник
Сейчас нет на сайте
| Вообще это не надо делать в Update(), он же выполняется каждый кадр. Ошибка, потому что P массив, можно так сделать:
Код for (int i = 0; i < P.Length; i++) { P[i].transform.parent = parentall.transform; } или
Код foreach (GameObject go in P) { go.transform.parent = parentall.transform; }
|
|
| |
Lertmind | Дата: Вторник, 26 Апреля 2016, 19:07 | Сообщение # 353 | Тема: Генератор случайных целых чисел с# |
заслуженный участник
Сейчас нет на сайте
| ShortKedr, ты путаешь язык программирования (С#) и библиотеку/фреймворк (.NET и библиотека Unity). В Unity через Mono поддержка С# версии 3.0 (так что про прародителей это бред) + именованные и необязательные аргументы из C# 4.0. Также через Mono реализуется поддержка .NET Framework (System.Random оттуда), но конечно с урезанным лишним функционалом. Ну и конечно в Unity своя библиотека классов, где есть UnityEngine.Random. И на счёт (int)UnityEngine.Random.Range(-10f, 10f);, это тупо, в Unity есть два перегруженных метода Random.Range для float и int (прочитай в инете про перегрузку методов): public static float Range(float min, float max); public static int Range(int min, int max);
|
|
| |
Lertmind | Дата: Вторник, 26 Апреля 2016, 18:06 | Сообщение # 354 | Тема: Вопрос-[ответ] по Unity |
заслуженный участник
Сейчас нет на сайте
| SkorpyX, с другим не спорил, так и есть)
|
|
| |
Lertmind | Дата: Вторник, 26 Апреля 2016, 18:01 | Сообщение # 355 | Тема: Вопрос-[ответ] по Unity |
заслуженный участник
Сейчас нет на сайте
| sirtoo, просто моветон. Большинство обучалок как раз на C# и есть ограничения для JS. Кроме этого, были проблемы если смешивать скрипты на разных языках - лучше начинать писать C# с самого начала. Добавлено (26 апреля 2016, 18:01) ---------------------------------------------
Цитата SkorpyX ( ) JS компилируется в C# код Скорее компилируется в СIL-код.
|
|
| |
Lertmind | Дата: Вторник, 26 Апреля 2016, 17:08 | Сообщение # 356 | Тема: Вопрос-[ответ] по Unity |
заслуженный участник
Сейчас нет на сайте
| 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 |
|
| |
Lertmind | Дата: Понедельник, 25 Апреля 2016, 19:28 | Сообщение # 357 | Тема: AndroidManifest |
заслуженный участник
Сейчас нет на сайте
| Если я правильно понял, то AndroidManifest обновляется когда ты добавляешь плагины, тогда тебе нужно их заново добавить. Или попробуй как здесь http://answers.unity3d.com/questio....fe.html, в простом способе он скопировал AndroidManifest.xml из папки Unity, и добавил в него всё что нужно для плагинов (наверно на основе manifest.xml в плагинах). Добавлено (25 апреля 2016, 19:22) --------------------------------------------- Попробуй выделить папки с плагинами и нажать "Reimport" в контекстном меню. Добавлено (25 апреля 2016, 19:28) --------------------------------------------- И прежде чем что-то делать, не забудь сделать резервную копию проекта.
|
|
| |
Lertmind | Дата: Понедельник, 25 Апреля 2016, 19:26 | Сообщение # 358 | Тема: Land Keeper |
заслуженный участник
Сейчас нет на сайте
| Нашёл ещё две ошибки: * Когда накопил валюты, купил самого правого персонажа. У меня 5 раз случалось, что когда отбиваешь стрелу, она отлетает, но ГГ всё равно умирает. * Когда накопил ещё 100, купил среднего персонажа, но значение валюты не изменилось сразу, только после перехода на другую сцену и обратно.
|
|
| |
Lertmind | Дата: Воскресенье, 24 Апреля 2016, 23:03 | Сообщение # 359 | Тема: Land Keeper |
заслуженный участник
Сейчас нет на сайте
| Цитата dreenline ( ) где сейчас указывать теги в плей маркете? Если ты про теги/ключевые слова для поиска, то нигде.Добавлено (24 апреля 2016, 22:21) --------------------------------------------- Как оптимизировать приложение для поиска в Google Play (eng). Добавлено (24 апреля 2016, 23:03) --------------------------------------------- Замечания: * После смерти главного героя лучше отображать две кнопки - "Повторить" и "Выбрать персонажа" - это ускорит следующую попытку. * Кнопка "Back to Menu" и "music by" маленькие по сравнению с другими кнопками и текстами. Ошибки: * Один раз у меня не сработала анимация смерти ГГ, он просто стоял. Вроде бы я не делал ничего необычного. * После смерти ГГ есть возможность послать стрелы во врага. Такого не должно быть, как мне кажется. * Когда жёлтый тролль проходит возле черепа, слои неправильно сортируются и череп накладывается поверх тролля.
|
|
| |
Lertmind | Дата: Воскресенье, 24 Апреля 2016, 18:38 | Сообщение # 360 | Тема: Надо уничтожить родительский объект! |
заслуженный участник
Сейчас нет на сайте
| Код using UnityEngine;
public class DestroyParent : MonoBehaviour { void Update() { if (Input.GetMouseButtonDown(0)) { if (transform.parent) { Destroy(transform.parent.gameObject); } } } }
|
|
| |
|