Найти тему
Котик TV

Создание игр на Unity3D. Создание окружающей среды.

Перейдем к делу, в прошлых мы создали персонажа который может ходить, однако если мы добавим предмет и хотим чтоб он через него не мог проходить, нам нужно установить на него Колайдер или по-английски Collider.

Как со всеми компонентами они делаятся на 2D и 3D, поэтому выбираем определённый коллайдер который нам нужен, хотим стену сделать используйте Box Collider и т.п.

Как это сделать? Очень просто делаем точно так же как мы добавляли Rigidbody, через нажатие по объекту в окне Hierarchy, после как добавили, можно проверить игру и Ура у нас человечек или кто-бы он не был не проходит через стену.

Добавляем как нам нужно и можно фактически играть.

Но думаю, некоторые захотят сделать так чтоб с обьектом можно было взаимодействовать, для этого на объект нужно кинуть ещё один "коллайдер" и отметить на нем пункт is Trigger теперь нас персонаж может взаимодействовать с объекстом, остальное то что бы мы хотели делать, когда персонаж попадал в эту область, нужно указывать уже в скрипте.

Eсли мы хотим чтоб взаимодействовал когда мы вошли в область тогда добавляем в скрипт

void OnTriggerEnter () {
//сюда писать можно разные действия которые хотите
}

Если хотим чтоб взаимодействовал когда мы вышли из области то по логике нужно поменять на противоположный Exit, вот так работают тригер приведу пример из своего Говнокода:

using UnityEngine;
public class triger : MonoBehaviour {
public GameObject player;
void OnTriggerEnter2D (Collider2D other) {
if (other.tag == "Player"){ // здесь я сделал условие чтоб объект с тегом player взаимодейсвтовал с объектом
player.transform.position = new Vector3 (player.transform.position.x , player.transform.position.y , player.transform.position.z + 1); // здесь изменяется только по z т.к это 2D игра чтоб персонаж заходил за объект
}
}
void OnTriggerExit2D (Collider2D other) {
if (other.tag == "Player"){
player.transform.position = new Vector3 (player.transform.position.x , player.transform.position.y , player.transform.position.z - 1); // здесь понятно чтоб он возвращался обратно на ту позицию которую был когда выходит из области взаимодействия
}
}
}

Вот мы сделали чтоб наш персонаж как бы прятался за объект

Это показал самое простое что можно сделать. Если вы хотите что-то больше вам потребуется перечитывать форумы и находить инфу о других командах.

Я думаю закончить эту тему с созданием Unity3D и перейти к другим темам