Видеоурок: Как обнаружить любой объект при помощи World Trigger
Примечание
Для каждого видеоурока вы можете выбрать субтитры на русском, английском и китайском языках.
Внимание
Этот урок подготовлен на версии SDK 2.18. Данные рекомендации неприменимы для более ранних версий.
World Trigger выполняет функции обратного вызова при вхождении любых объектов в ограничиваемый им объем или покидания объектами этого объема. Триггер может обнаруживать ноды любого типа (как с физическими свойствами, так и без них) по их ограничивающему контуру.
Код компонентов, показанный в этом видео, приведён ниже для вашего удобства:
DeleteObject.cs
using System.Collections;
using System.Collections.Generic;
using Unigine;
[Component(PropertyGuid = "AUTOGENERATED_GUID")] // <-- this line is generated automatically for a new component
public class DeleteObject : Component
{
WorldTrigger worldTrigger;
void enter_event_handler(Node target)
{
// Delete the object on entering the trigger
target.DeleteLater();
}
void Init()
{
// Cast Node to WorldTrigger
worldTrigger = node as WorldTrigger;
if(worldTrigger){
// Subscribe for Enter event to perform actions
// when a node enters the trigger
worldTrigger.EventEnter.Connect(enter_event_handler);
}
}
void Update()
{
// Render node's visualizer
node.RenderVisualizer();
}
}
Mover.cs
using System.Collections;
using System.Collections.Generic;
using Unigine;
[Component(PropertyGuid = "AUTOGENERATED_GUID")] // <-- this line is generated automatically for a new component
public class Mover : Component
{
void Init()
{
// write here code to be called on component initialization
}
void Update()
{
// move the node down
node.Translate(new vec3(0.0f, 0.0f, Game.IFps * -1.0f));
// render the bounding box
Visualizer.RenderBoundBox(node.BoundBox, mat4.IDENTITY, new vec4(1.0f, 0.0f, 0.0f, 1.0f));
}
}
Чтобы включить визуализатор, добавьте следующий код в метод Init() в AppWorldLogic.cpp или в любой подходящий компонент:
Исходный код (C#)
// Enable Visualizer
Unigine.Console.Run("show_visualizer 1");
Информация, представленная на данной странице, актуальна для версии UNIGINE 2.19.1 SDK.
Последнее обновление:
04.03.2025
Помогите сделать статью лучше
Была ли эта статья полезной?
(или выберите слово/фразу и нажмите Ctrl+Enter