Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

QueryTriggerInteraction

перечисления

Описание

Переопределяет глобальные Physics.queriesHitTriggers.

Переопределяет глобальный параметр Physics.queriesHitTriggers, чтобы указать, будут ли запросы (raycasts, сферикасты, тесты перекрытия и т. д.) вызывать триггеры по умолчанию. Используйте Игнорировать для запросов, чтобы игнорировать триггерные коллайдеры.

//Create two GameObjects (e.g. a Cube) and place them near each other. Attach this script to one of them. //Click on the GameObject with the script. Attach the other GameObject to the “My Game Object” field in the Inspector. //Make sure both have Collider components //Choose your own “Max Distance” in the Inspector (e.g. 600).

//This script casts a ray that ignores Trigger Colliders. //Press space to switch the second GameObject between a Trigger and non-Trigger GameObject. When the Trigger is off, the ray detects a collision. When it is on, no collisions occur.

using UnityEngine;

public class Example : MonoBehaviour { //The maximum distance from your GameObject. Make sure to set this in the Inspector public float m_MaxDistance; public LayerMask m_Mask = -1;

//Assign a GameObject in the Inspector that you want to test collisions with public GameObject m_MyGameObject; //This is the Collider of the GameObject you assign in the Inspector Collider m_OtherGameObjectCollider;

void Start() { //Fetch the Collider from the GameObject you assign in the Inspector m_OtherGameObjectCollider = m_MyGameObject.GetComponent<Collider>(); }

void FixedUpdate() { //Set the direction as forward Vector3 direction = transform.TransformDirection(Vector3.forward);

//Use Physics to calculate the raycast //Uses your GameObject's original position, the direction (above), the max distance from your GameObject, and the LayerMask value to calculate raycast. //Also tells it to ignore trigger colliders using QueryTriggerInteraction if (Physics.Raycast(transform.position, direction, m_MaxDistance, m_Mask.value, QueryTriggerInteraction.Ignore)) print("There is something in front of the object!"); }

void Update() { //Press space to turn the other GameObject's trigger status on and off if (Input.GetKeyDown(KeyCode.Space)) { //Test if the trigger collisions are ignored by turning the GameObject's trigger collider on and off m_OtherGameObjectCollider.isTrigger = !m_OtherGameObjectCollider.isTrigger; } } }

Свойства

UseGlobal Запросы используют глобальную настройку Physics.queriesHitTriggers.
Ignore Запросы никогда не сообщают о совпадениях триггеров.
Collide Запросы всегда сообщают о совпадениях триггеров.
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3