Очень просто:
Код
using UnityEngine;
using System.Collections;
[AddComponentMenu("DirlaX/Test")] // Добавляем скрипт в меню (автоматически)
[RequireComponent(typeof(SphereCollider))] // Добавляем коллайдер (автоматически)
[RequireComponent(typeof(Rigidbody))] // Добавляем ригидбоди (автоматически)
[RequireComponent(typeof(BlurEffect))] // Добавляем эффект (автоматически)
public class Test : MonoBehaviour
{
public BlurEffect bE; // Добавляем эффект
public SphereCollider sC; // Добавляем коллайдер
void Start () // Старт
{
bE = transform.GetComponent <BlurEffect> () as BlurEffect; // Указываем на эффект
bE.enabled = false; // Стандартно отключаем его
sC = transform.GetComponent <SphereCollider> () as SphereCollider; // Добавляем коллайдер
sC.radius = 0.2f; // Добавляем радиус коллайдера
sC.isTrigger = true; // Включаем тригер на коллайдере
rigidbody.isKinematic = true; // Добавляем к ригидбоди кинематик
}
void OnTriggerEnter (Collider other) // Если наш коллайдер входит в (другой коллайдер) то
{
if (что-то) // если этот "другой коллайдер" есть (что-то: слой, или что-нбудь ещё)
{
StartCoroutine( On() ); // Вызываем функцию
}
}
void OnTriggerExit (Collider other) // Если наш коллайдер выходит из (другого коллайдера) то
{
if (что-то) // если этот "другой коллайдер" есть (что-то: слой, или что-нбудь ещё)
{
StartCoroutine( Off() ); // Вызываем функцию
}
}
IEnumerator On () //функция
{
yield return null;
if (!bE.enabled) // если эффект не включён
{
bE.enabled = true; // Включаем
}
}
IEnumerator Off () //функция
{
yield return null;
if (bE.enabled) // если эффект включён
{
bE.enabled = false; // Выключаем
}
}
}