Уроки Unity C#

#7 - События OnCollision и OnTrigger

#7 - События OnCollision и OnTrigger

В этом уроке мы изучим события OnCollision и OnTrigger. Благодаря этим событиям мы можем проверять объекты на их соприкосновение. Так, если объекты столкнулись, то мы узнаем об этом и можем проделать все что угодно.

Видеоурок

Исходный код

Основной класс
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Script : MonoBehaviour {

	public GameObject obj;
	private GameObject inst_obj;
	[SerializeField]
	private float speed = 4f;

	void Start () {
		inst_obj = Instantiate (obj, new Vector3 (0, 0, 0), Quaternion.identity) as GameObject;
	}

	void Update () {
		float zPos = Input.GetAxis ("Vertical");

		inst_obj.transform.Translate (Vector3.forward * speed * zPos * Time.deltaTime);
	}

}
Класс Scale
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Scale : MonoBehaviour {

	void OnMouseDown () {
		transform.localScale = new Vector3 (transform.localScale.x / 2f, transform.localScale.y / 2f, transform.localScale.z / 2f);
	}

	void OnTriggerEnter (Collider other) {
		print (other.gameObject.name);
	}

}

Задание к уроку

Соприкосновение объектов
Сделайте так, чтобы пока куб будет в стене, то в консоль будет выводится информация "[здесь имя кубика] находится в стенке [здесь имя стенки]".
Посмотреть ответ
Вот решение:
void OnTriggerStay (Collider other) {
   print (gameObject.name + " находится в стенке " + other.gameObject.name);
}

Большое задание по курсу

Вам необходимо оформить подписку на сайте, чтобы иметь доступ ко всем большим заданиям. В задание входит методика решения, а также готовый проект с ответом к заданию.
PS: подобные задания доступны при подписке от 1 месяца

Также стоит посмотреть

Изучение C#, ASP.NET и создание Windows программ
Изучение языка C# для начинающих
26 уроков
Изучение ASP.NET Core MVC. Создание сайтов на C#
8 уроков