UE4[C++]自定义Object/Trace Channel

UE4[C++]自定义Object/Trace Channel

本文作为攀爬系统的补充篇,介绍一下C++自定义Trace Channel的使用

在Project Settings中,可以添加我们想要的Channel

添加之后,我们可以在:

项目名/Config/DefaultEngine.ini中找到我们添加的通道。

为了更便于程序员辨识和使用,我们可以在"项目名.h"文件中定义添加的通道,方便全局使用。

#pragma once

#include "CoreMinimal.h"

#define TRACE_CLIMB ECC_GameTraceChannel1

之后我们可以在LineTrace中使用了

Example:

UKismetSystemLibrary::SphereTraceSingle(this, Start, End, 20.f, UEngineTypes::ConvertToTraceType(TRACE_CLIMB), false, ActorsToIgnore, EDrawDebugTrace::None, Hit, true);

UEngineTypes提供了转换函数,方便我们进行类型转换

	/** Convert a trace type to a collision channel. */
	static ECollisionChannel ConvertToCollisionChannel(ETraceTypeQuery TraceType);

	/** Convert an object type to a collision channel. */
	static ECollisionChannel ConvertToCollisionChannel(EObjectTypeQuery ObjectType);

	/** Convert a collision channel to an object type. Note: performs a search of object types. */
	static EObjectTypeQuery ConvertToObjectType(ECollisionChannel CollisionChannel);

	/** Convert a collision channel to a trace type. Note: performs a search of trace types. */
	static ETraceTypeQuery ConvertToTraceType(ECollisionChannel CollisionChannel);

发布于 2019-03-17

文章被以下专栏收录