Видеоурок: Как обнаружить физический объект при помощи Physical Trigger
Примечание
Для каждого видеоурока вы можете выбрать субтитры на русском, английском и китайском языках.
Внимание
Этот урок подготовлен на версии SDK 2.18. Данные рекомендации неприменимы для более ранних версий.
Physical Trigger используется для обнаружения вхождения или покидания ограничиваемого им объема физическими объектами (имеющими физические тело и форму).
Код компонента, показанный в этом видео, приведён ниже для вашего удобства:
Trigger.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 Physical : Component
{
vec4 color;
void enter_event_handler(Body body)
{
// Remember the material's color and set it to black
color = body.Object.GetMaterialInherit(0).GetParameterFloat4("albedo_color");
body.Object.GetMaterialInherit(0).SetParameterFloat4("albedo_color", vec4.BLACK);
}
void leave_event_handler(Body body)
{
// Restore the previous material's color
body.Object.GetMaterialInherit(0).SetParameterFloat4("albedo_color", color);
}
PhysicalTrigger physicalTrigger;
void Init()
{
// Cast Node to PhysicalTrigger
physicalTrigger = node as PhysicalTrigger;
if(physicalTrigger){
// Subscribe for Enter and Leave events to perform actions
// when a body enters or leaves the trigger
physicalTrigger.EventEnter.Connect(enter_event_handler);
physicalTrigger.EventLeave.Connect(leave_event_handler);
}
}
void Update()
{
// Render the trigger's volume
Visualizer.RenderNodeBoundSphere(node, vec4.BLUE);
}
}
Чтобы включить визуализатор, добавьте следующий код в метод Init() в AppWorldLogic.cpp или в любой подходящий компонент:
Исходный код (C#)
// Enable Visualizer
Visualizer.Enabled = true;
Последнее обновление:
04.03.2025
Помогите сделать статью лучше
Была ли эта статья полезной?
(или выберите слово/фразу и нажмите Ctrl+Enter