C# для Unity жестко
Функций
Unity использует язык программирования C# для написания скриптов и логики игр. Ниже приведен обзор основных функций, классов и библиотек C#, которые широко используются в Unity:
Методы жизненного цикла объектов:
Awake()
: Вызывается при создании объекта.Start()
: Вызывается перед первым обновлением кадра после Update.Update()
: Вызывается каждый кадр.FixedUpdate()
: Вызывается на каждом фиксированном кадре каждые 0.02 секунды (Можно настроить в Project Setting в Time).LateUpdate()
: Вызывается после обновления всех кадров.OnEnable() :
вызывается при включений объекта со скриптом на сцене.OnDisable() :
вызывается при выключений объекта со скриптом на сцене.OnDestroy()
: Происходит при удалений объекта со скриптом со сцены
Сцены и управление переходами:
Коллайдеры и обнаружение столкновений:
OnCollisionExit(Collision collision)
: Вызывается, когда объект прекращает соприкосновение с другим объектом.OnTriggerExit(Collider other)
: Вызывается, когда объект покидает триггерный коллайдер.- Physics.Raycast(Vector3 origin, Vector3 direction, out RaycastHit hitInfo, float maxDistance): Отправляет луч из начальной точки в указанном направлении и возвращает информацию о столкновении.
- Rigidbody.AddForce(Vector3 force): Применяет силу к Rigidbody.
Корректные сериализованные поля:
Управление состоянием и данными
Интерфейс пользователя (UI)
Сетевое взаимодействие
Сохранение и загрузка
Работа со временем
События и делегаты
Анимация
Камера и отображение
Пользовательские атрибуты и рефлексия
Оптимизация и профилирование
Плагины и внешние библиотеки
Переменные
- Основные классы:
GameObject
: Основной класс для всех объектов в сцене.Transform
: Класс для управления позицией, вращением и масштабом объектов.MonoBehaviour
: Базовый класс для всех пользовательских скриптов, прикрепляемых к GameObjects.- Компоненты для рендеринга:
MeshRenderer
: Отображает меш в сцене.SpriteRenderer
: Отображает спрайты.Camera
: Класс для управления камерами.Light
: Класс для настройки освещения.- Физика и коллизии:
Rigidbody
: Добавляет физическое тело к объекту.Collider
: Классы, такие какBoxCollider
,SphereCollider
,MeshCollider
, для обработки столкновений.Physics
: Класс для управления физическими настройками и взаимодействиями.- Анимация и анимационные системы:
- UI (Пользовательский интерфейс):
Canvas
: Класс для управления областью отображения UI.Image
,Text
,Button
и другие классы для создания интерфейса пользователя.- Аудио:
- Сетевые классы:
NetworkManager
: Управление сетевыми операциями.NetworkBehaviour
: Базовый класс для сетевых скриптов.- Скриптинг и утилиты:
ScriptableObject
: Класс для создания настраиваемых данных, не привязанных к сценам.PlayerPrefs
: Класс для сохранения и загрузки данных игрока.- Управление сценами и ресурсами:
- Ввод данных:
Звук
Класс AudioSource
- Play()
- Stop()
- Pause()
- UnPause()
- PlayOneShot(AudioClip clip, float volumeScale = 1.0F)
- Воспроизводит один звуковой клип без влияния на текущий воспроизводимый звук.
- Пример:
audioSource.PlayOneShot(soundClip, 1.0f);
- PlayDelayed(float delay)
- Начинает воспроизведение звука после задержки.
- Пример:
audioSource.PlayDelayed(2.5f);
// Задержка в 2.5 секунды - mute
- volume
- Устанавливает или получает громкость звука.
- Пример:
audioSource.volume = 0.5f;
// Установка громкости на 50% - pitch
- Устанавливает или получает высоту тона звука.
- Пример:
audioSource.pitch = 1.5f;
// Увеличение высоты тона - loop
Класс AudioListener
AudioListener
является компонентом, который "слушает" все звуки, воспроизводимые в сцене. Обычно он прикреплен к камере. Нет специфических функций для управления, но важно убедиться, что в сцене присутствует только один активныйAudioListener
.
Дополнительные Компоненты и Классы
- AudioMixer: Позволяет более сложное управление звуком, включая группы звуков и переходы.
- AudioMixerGroup: Управляет группами звуков в AudioMixer.
- AudioClip: Представляет звуковой клип, который может быть воспроизведен с помощью
AudioSource
.
- isPlaying
- GetSpectrumData
- Получает спектральные данные аудио для визуализации аудио.
- Пример:
audioSource.GetSpectrumData(samples, 0, FFTWindow.Blackman);
- SetScheduledEndTime
- Запланировать время окончания воспроизведения аудио.
- Пример:
audioSource.SetScheduledEndTime(AudioSettings.dspTime + 5.0);
- SetScheduledStartTime
- Запланировать время начала воспроизведения аудио.
- Пример:
audioSource.SetScheduledStartTime(AudioSettings.dspTime + 2.0);
- DopplerLevel
- Spread
- SetCustomCurve
UI
Переменные:
- Text
- Image
- Button
- Slider
- Тип:
UnityEngine.UI.Slider
- Описание: Ползунок для ввода числовых значений или регулировки параметров.
- Toggle
- Dropdown
- InputField
- ScrollRect
- Canvas
- Тип:
UnityEngine.Canvas
- Описание: Основной компонент для всех элементов UI, определяет область, в которой элементы UI будут отображаться.
- CanvasGroup
- Тип:
UnityEngine.CanvasGroup
- Описание: Позволяет управлять группой элементов UI, включая их прозрачность и интерактивность.
- RectTransform
- Тип:
UnityEngine.RectTransform
- Описание: Расширение трансформации, используемое для позиционирования и масштабирования UI элементов.
- GraphicRaycaster
- Тип:
UnityEngine.UI.GraphicRaycaster
- Описание: Используется для определения, какие UI элементы находятся под курсором мыши или точкой касания.
- LayoutGroup
- Типы:
UnityEngine.UI.HorizontalLayoutGroup
,UnityEngine.UI.VerticalLayoutGroup
,UnityEngine.UI.GridLayoutGroup
- Описание: Классы для управления расположением дочерних элементов UI в горизонтальном, вертикальном порядке или сетке.
- ContentSizeFitter
Методы и функций:
1. Text
2. Image
3. Button
4. Slider
- value: Устанавливает или получает текущее значение слайдера.
- onValueChanged.AddListener(): Добавляет метод, который будет вызываться при изменении значения слайдера.
5. Toggle
- isOn: Устанавливает или проверяет, включен ли переключатель.
- onValueChanged.AddListener(): Добавляет метод, который будет вызываться при изменении состояния переключателя.
6. Dropdown
- value: Устанавливает или получает выбранный индекс.
- onValueChanged.AddListener(): Добавляет метод, который будет вызываться при выборе нового элемента.
7. InputField
- text: Устанавливает или получает текст в поле ввода.
- onValueChanged.AddListener(): Добавляет метод, который будет вызываться при изменении текста.
- onEndEdit.AddListener(): Добавляет метод, который будет вызываться при завершении редактирования текста.
8. ScrollRect
- verticalNormalizedPosition: Устанавливает или получает вертикальное положение прокрутки.
- horizontalNormalizedPosition: Устанавливает или получает горизонтальное положение прокрутки.
9. CanvasGroup
- alpha: Устанавливает прозрачность группы элементов UI.
- interactable: Включает или отключает взаимодействие с элементами группы.
- blocksRaycasts: Определяет, будут ли элементы группы блокировать лучи (например, для кликов мыши).
foreach -
- это конструкция в языках программирования, которая используется для итерации (перебора) элементов в коллекции, такой как массив, список или другой контейнер. Это позволяет перебирать элементы коллекции без явного использования индексов.
int[] numbers = { 1, 2, 3, 4, 5 };
foreach (int number (Например 3) in numbers)
Console.WriteLine(number); //Выведет 3
Rect -
- - это структура (тип данных) во многих графических библиотеках и фреймворках, включая Unity. Она используется для представления прямоугольных областей (прямоугольников) в двумерных или трехмерных графических приложениях.
- В Unity,
Rect
часто используется для задания координат и размеров интерфейсных элементов, текстур, окон и других графических объектов. Или выделителей областей.
Все методы
- Start() - при старте игры
- Update() - каждый кадр
- FixedUpdate() - Каждый фиксированный кадр
- LateUpdate() - Вызывается сразу после Update
- Awake() - Вызывается до Update
- OnEnable() - Вызывается, когда объект активируется на сцене
- OnDisable() - Вызывается, когда объект деактивируется на сцене
- OnDestroy() - Когда объект уничтожается/удаляется
- OnTriggerEnter() - Вызывается, когда другой коллайдер входит в триггер
- OnTriggerExit() - Вызывается, когда другой коллайдер выходит из триггера
- OnCollisionEnter() - Вызывается, когда другой коллайдер сталкивается с коллайдером
- OnCollisionExit() - Вызывается, когда другой коллайдер перестает сталкиваться с коллайдером
- OnTriggerEnter2D()
- OnTriggerExit2D()
- OnCollisionEnter2D()
- OnCollisionExit2D()
- OnGUI() - Нужен для изменения интерфейса в игре
- OnMouseEnter() - Вызывается, когда указатель мыши входит в область коллайдера объекта
- OnMouseExit() - Когда выходит
- OnMouseDown() - Вызывается, когда кнопка мыши нажата над объектом.
- OnMouseUp() - Вызывается, когда кнопка мыши отпущена над объектом.
- OnMouseDrag() - Вызывается, когда мышь перетаскивает объект с зажатой кнопкой мыши.
- OnApplicationQuit() - Вызывается, когда приложение закрывается.
- OnApplicationPause() - При паузе
- OnApplicationFocus() - ХЗ
- OnDrawGizmos() - Вызывается в редакторе Unity при отрисовке гизмо (помощников отладки) для объекта.
- OnValidate() - Вызывается в редакторе Unity, когда значение обновляется в редакторе свойств или компонента.
- OnBecameVisible() - Вызывается, когда объект становится видимым для камеры.
- OnBecameInvisible() - Вызывается, когда объект становится невидимым для камеры.
- OnAnimatorMove() - Вызывается каждый кадр, чтобы сообщить компоненту, что аниматор обновил позицию объекта.
- OnJointBreak(float
breakForce
) - Этот метод может быть использован для выполнения действий при разрыве соединений, например, для активации эффектов разрушения или управления поведением объекта после разрыва. - OnParticleCollision() - Вызывается, когда частицы, созданные системой частиц, сталкиваются с коллайдером другого объекта.
- OnPlayerConnected() - Вызывается на сервере, когда новый игрок подключается к сетевой игре.
- OnPlayerDisconnected() - Вызывается на сервере, когда игрок отключается от сетевой игры.
- OnTransformChildrenChanged() - Этот метод может быть использован для выполнения действий при изменениях в трансформации дочерних объектов.
- OnTransformParentChanged() - Этот метод может быть использован для выполнения действий при изменении родительского объекта.
- OnRenderObject() - Вызывается при каждой отрисовке объекта.
- OnPreRender() - Этот метод может быть использован для выполнения действий, которые должны произойти непосредственно перед отрисовкой, например, для настройки камеры или рендерера.
- OnPostRender() - Этот метод может быть использован для выполнения действий, которые должны произойти непосредственно после отрисовки, например, для восстановления настроек камеры или рендерера.
- OnLevelWasLoaded(int Level) - Вызывается, когда загружается новый уровень.
- OnAudioFilterRead(
float[] data, int channels
) - Вызывается перед тем, как произойдет воспроизведение аудио. Параметрdata
представляет собой массив аудиоданных, аchannels
указывает на количество аудиоканалов. - OnRectTransformDimensionsChange() - Вызывается при изменении размеров прямоугольника трансформации (RectTransform).
- OnRectTransformRemoved() - Вызывается, когда компонент RectTransform удален из объекта.
- OnCanvasGroupChanged() - Этот метод может быть использован для выполнения действий при изменении свойств группы Canvas, например, при изменении прозрачности или блокировке группы.
- OnCanvasHierarchyChanged() - Вызывается при изменении иерархии объектов Canvas.
- OnRenderImage()
- OnWillRenderObject()
- OnPreCull()
- OnRenderObject()
- OnRenderTexture()
- OnWillRenderObject()
- OnBecameVisible()
- OnBecameInvisible()
- OnParticleCollision()
- OnNetworkInstantiate()
- OnParticleTrigger()
- OnParticleCollision()
- OnParticleSystemStopped()
- OnControllerColliderHit()
- OnConnectedToServer()
- OnDisconnectedFromServer()
- OnFailedToConnect()
- OnFailedToConnectToMasterServer()
- OnMasterServerEvent()
- OnNetworkInstantiate()
- OnSerializeNetworkView()
- OnServerInitialized()
- OnNetworkInstantiate()
- OnSerializeNetworkView()
- OnFailedToConnectToMasterServer()
- OnMasterServerEvent()
- OnNetworkInstantiate()
- OnSerializeNetworkView()
- OnFailedToConnect()
- OnFailedToConnectToMasterServer()
- OnMasterServerEvent()
Все типы данных
- GameObject
- Component
- MonoBehaviour
- Transform - ==Позиция==
- Vector2
- Vector3
- Vector4
- Quaternion
- Matrix4x4
- Color
- Rect
- RectOffset
- Bounds
- Ray
- Ray2D
- LayerMask
- Plane
- Mathf
- Time
- Random
- Input
- Resources
- AssetBundle
- Texture
- Texture2D
- RenderTexture
- Material
- Shader
- Mesh
- AnimationCurve
- Keyframe
- AnimationClip
- Animator
- AnimatorControllerParameter
- AnimationEvent
- AnimationState
- AnimationBlendMode
- AnimationPlayMode
- AnimationCullingType
- Animation
- AnimatorController
- AnimatorOverrideController
- AnimatorUtility
- Motion
- ParticleSystem
- ParticleSystemRenderer
- ParticleSystem.Particle
- Physics
- Rigidbody
- Collider
- MeshCollider
- BoxCollider
- SphereCollider
- CapsuleCollider
- WheelCollider
- CharacterController
- Joint
- HingeJoint
- FixedJoint
- SpringJoint
- CharacterJoint
- ConfigurableJoint
- DistanceJoint2D
- FixedJoint2D
- FrictionJoint2D
- HingeJoint2D
- SliderJoint2D
- SpringJoint2D
- TargetJoint2D
- WheelJoint2D
- Joint2D
- Rigidbody2D
- Collider2D
- CircleCollider2D
- BoxCollider2D
- PolygonCollider2D
- EdgeCollider2D
- CompositeCollider2D
- CapsuleCollider2D
- ConstantForce2D
- Effector2D
- BuoyancyEffector2D
- PlatformEffector2D
- SurfaceEffector2D
- AreaEffector2D
- BuoyancyEffector2D
- PlatformEffector2D
- SurfaceEffector2D
- AreaEffector2D
- BuoyancyEffector2D
- PlatformEffector2D
- SurfaceEffector2D
- AreaEffector2D
- TerrainCollider
- WheelHit
- CharacterInfo
- Font
- GUIStyle
- GUIContent
- GUIStyleState
- GUISkin
- GUILayout
- GUILayoutOption
- RectOffset
Mathf - математика в unity
Abs(float value)
: Возвращает абсолютное значение числа.Ceil(float f)
: Округляет число до ближайшего большего целого.Clamp(float value, float min, float max)
: Ограничивает значение в пределах заданного диапазона.Cos(float f)
: Возвращает косинус угла в радианах.Exp(float power)
: Возвращает экспоненту числа.Lerp(float a, float b, float t)
: Линейно интерполирует между двумя значениями.Log(float f)
: Возвращает натуральный логарифм числа.Max(float a, float b)
: Возвращает наибольшее значение из двух чисел.Min(float a, float b)
: Возвращает наименьшее значение из двух чисел.Pow(float f, float p)
: Возвращает число, возведенное в степень.Round(float f)
: Округляет число до ближайшего целого.Sin(float f)
: Возвращает синус угла в радианах.Sqrt(float f)
: Возвращает квадратный корень числа.Tan(float f)
: Возвращает тангенс угла в радианах.
E
: Экспонента (2.71828).PI
: Число Пи (3.14159).Infinity
: Положительная бесконечность.NegativeInfinity
: Отрицательная бесконечность.Deg2Rad
: Константа для преобразования градусов в радианы.Rad2Deg
: Константа для преобразования радиан в градусы.
Mathf
предоставляет удобный набор функций для работы с числами в Unity и часто используется для выполнения различных математических операций в игровых сценах и скриптах.
Transform - перемещение
Атрибуты:
- position: Возвращает или устанавливает позицию объекта в трехмерных координатах (Vector3).
- rotation: Возвращает или устанавливает вращение объекта в виде кватерниона (Quaternion).
- localPosition: Возвращает или устанавливает позицию объекта относительно его родительского объекта в локальных координатах (Vector3).
- localRotation: Возвращает или устанавливает вращение объекта относительно его родительского объекта в виде кватерниона (Quaternion).
- localScale: Возвращает или устанавливает масштаб объекта относительно его родительского объекта (Vector3).
- parent: Возвращает или устанавливает родительский объект.
- childCount: Возвращает количество дочерних объектов.
- forward: Возвращает направление вперед относительно объекта (Vector3).
- right: Возвращает направление вправо относительно объекта (Vector3).
- up: Возвращает направление вверх относительно объекта (Vector3).
Методы:
- Translate(Vector3 translation): Смещает объект на указанный вектор.
- Rotate(Vector3 eulerAngles): Поворачивает объект на указанные углы вокруг его центра.
- LookAt(Transform target): Поворачивает объект так, чтобы его направление было направлено на указанный объект.
- TransformPoint(Vector3 position): Преобразует локальные координаты в мировые координаты.
- InverseTransformPoint(Vector3 position): Преобразует мировые координаты в локальные координаты.
- TransformDirection(Vector3 direction): Преобразует локальное направление в мировое направление.
- InverseTransformDirection(Vector3 direction): Преобразует мировое направление в локальное направление.
- DetachChildren(): Отсоединяет все дочерние объекты от текущего объекта.
- Find(string name): Находит дочерний объект по его имени.
Button Методы
- OnClick() - Метод для обработки события нажатия на кнопку
- OnHoverEnter() - Метод, вызываемый когда курсор мыши наводится на кнопку
- OnHoverExit() - Метод, вызываемый когда курсор мыши покидает кнопку
- DisableButton() - Метод для отключения
- EnableButton() - Метод для включения кнопки
- ChangeButtonText() - Метод для изменения текста кнопки
- ChangeButtonColor() - Метод для изменения цвета кнопки
- AnimateButtonPress() - Метод для анимации нажатия кнопки
- ShowButton() - Метод для отображения кнопки, если она была скрыта
- HideButton() - Метод для скрытия кнопки