В.: Как получить доступ к переменной в скрипте на другом ГО?
О.: Сделать эту переменную статической или же воспользоваться методом GameObject.GetComponent<Имя_скрипта>(). Ниже пример для второго способа
Синтаксис:
Используется csharp
Код
ScriptRespawn remoteScript = go.GetComponent<ScriptRespawn>();
float health = remoteScript.health;
float health = remoteScript.health;
// переменная health в ScriptRspawn должна быть public
В.: Есть ли уроки на русском?
О.: Полностью переведён один урок — FPS Tutorial (ссылка). Также частично переведена справка (ссылка).
В.: У меня отсутствует часть сообщений в консоли, хотя они точно должны там быть.
О.: Выключите опцию Collapse в консоли.
В.: Как мне реализовать паузу?
О.: Наиболее простой вариант — установить Time.timeScale в ноль.
В.: Как измерить расстояние между двумя объектами?
О.: Vector3.Distance()
В.: Как заставить два меш-коллайдера взаимодействовать?
О.: Включить опцию Convex у обоих.
В.: Как отключить/заблокировать курсор?
О.: Screen.showCursor; Screen.lockCursor.
В.: Как отключить контекстное меню в веб-сборке?
О.: disableContextMenu (ссылка)
В.: Как визуализировать Raycast?
О.: Debug.DrawLine.
В.: Как округлить дробь?
О.: Mathf.Round или Mathf.RoundToInt
В.: Как получить высоту точки террейна?
О.: Terrain.SampleHeight возвращает высоту точки относительно нуля этого террейна.
В.: Как придать телу импульс?
О.: Rigidbody.AddForce с параметром ForceMode.Impulse.
В.: Как изменить громкость всех источников звука в сцене?
О.: AudioListener.volume
В.: Как избавиться от смазывания текстур при отдалении от них камеры?
О.: Отключить генерацию mipmaps в настройках импорта текстуры.
В.: Как отключить вывод предупреждений в консоль?
О.: #pragma warning disable (в справке mdsn даны подробности)
В.: Как спозиционировать Scene View на выбранном объекте?
О.: Edit > Frame Selected или просто клавиша F.
В.: Что делать с файлами .unitypackage?
О.: Assets > Import/Export Packages
В.: Как сделать объект невидимым для Raycast?
О.: Поставить его в стандартный слой Ignore Raycast.
В.: Как создавать GUI (графический пользовательский интерфейс)?
О.: Классы GUI и GUILayout.
В.: Можно ли строить GUI визуальными методами?
О.: Есть следующие решения: GUIX (ссылка), bitverse-unity-gui (ссылка) и XamlToUnityGUI (ссылка).
В.: Как отключить обработку коллизий для коллайдера?
О.: Включить опцию коллайдера isTrigger. Однако, такой коллайдер всё ещё будет принимать Raycast.
В.: Куда сохраняются логи редактора?
О.: C:\Documents and Settings\zaicheg\Local Settings\Application Data\Unity\Editor\Editor.log
Этот же документ можно посмотреть, нажав Open Editor Log в консоли.
В.: Куда сохраняются логи приложения?
О.: Для standalone: _Data\output_log.txt. Для web: C:\Documents and Settings\user\Local Settings\Temp\UnityWebPlayer\log
В.: Где можно посмотреть, какие ресурсы сколько занимают в моём билде?
О.: Там же, в Editor.log (после сборки билда).
В.: Не работает Array.length.
О.: В C# пишите .Length (с большой буквы).
В.: У меня глючит физика.
О.: Проверьте, осущетвляются ли все физические действия в FixedUpdate(). Увеличьте размеры объектов. Избавьтесь от тонких (или безтолщинных) мешей (Plane). Уменьшите FixedTimesetp.
B.: Не получается отредактировать элемент массива mesh.vertices (mesh.normals и прочее).
О.: Редактируйте во временном массиве vertTemp, а потом mesh.vertices = vertTemp.
В.: Я отключил скрипт, но он всё равно частично работает!
О.: Отключение скрипта действует лишь на вызов метода Update(). Start, Awake и прочие будут работать.
В.: Как увеличить частоту физических расчётов?
О.: Edit > Project Settings > Time > Fixed Timestep
В.: Как приостановить выполнение в Editor Mode (поставить на паузу)?
О.: Debug.Break
В.: Могу ли я посмотреть исходники стандартного скина?
О.: Да, конечно (ссылка).
В.: Могу ли я посмотреть исходники стандартных шейдеров?
О.: Да, конечно (ссылка).
В.: Как отобразить кириллицу в GUI?
О.: Назначьте на стиль или скин шрифт с поддержкой кириллицы (импортировать шрифт в проект можно из папки C:/WINDOWS/Fonts). Дополнительно сохраняйте ваши скрипты в кодировке UTF-16 (в VS это Unicode - Codepage 1200).
В.: Как изменить кегль или начертание шрифта?
О.: Кегль — в настройках импорта. Начертание — импортом шрифта соответствующего начертания из вышеназванной системной папки /Fonts/.
В.: Как мне подгружать дополнительные ресурсы в рантайм?
О.: Asset Bundles или папка Resources (ссылка).
В.: Как определить, кликнул ли я по ГУИ-элементу (не баттону)?
О.: rectB.Contains(Event.current.mousePosition); где rectB - ректангл ГУИ-элемента.
В.: Как менять хоткеи редактора?
О.: HKEY_CURRENT_USER\Software\Unity Technologies\Unity Editor
В.: Как разрешить игре работу "в фоне"?
О.: Edit → Project Settings → Player → Run in Background
В.: Какие отличия между Pro-версией и обычной?
О.: http://unity3d.com/unity/licenses.html
В.: Сколько стоит Unity?
О.: https://store.unity3d.com/shop/
Ошибки
В.: Я получаю сообщения об ошибке при открытии проекта или при импорте пакете .unitypackage.
О.: Первая причина — в пути до Unity, до проекта или до пакета присутствуют кириллические символы. Вторая причина —использование взломанной версии Unity.
В.: Пропускаются коллизии (объекты проскакивают друг через друга).
О.: Уменьшите Fixed Timestep, увеличьте размер объектов, уменьшите скорость их движения, используйте физические методы для перемещения (rigidbody.velocity вместо transform.Translate)
В.: Буквы разной ширины!
О.: Используйте моноширный шрифт. Например, Courier New.
В.: Скрипт не компилируется, хотя я в нём ещё ничего не писал.
О.: Имя первого класса в скрипте должно совпадать с именем скрипта (справедливо для C#).
В.: У класса исчезли поля и методы!
О.: Вероятно, вы назвали какой-то из своих скриптов или классов тем же именем. Например, распостраненно именование скриптов как «GUI», что конечно же неприемлимо.
В.: Я ставлю условие if (Input.GetKey("a")), но при нажатии A условие не срабатывает.
О.: Используйте if (Input.GetKey(KeyCode.A))