[UE4]为Character创建插槽(socket)并绑定另一个actor

为Character创建插槽(socket)并绑定另一个actor(比如一个武器),打开角色骨骼后找到要创建的位置,右键add socket


 

创建好以后修改socket的name和transform:


 

 

然后就可以用C++代码绑定武器到这个socket,通过参数SocketName指定:

if (!UnitSelector)
{
	UnitSelector = GetWorld()->SpawnActor<AActor>(UnitSelectorClass);
}
if (UnitSelector)
{
	UnitSelector->AttachRootComponentToActor(SelectedHero, FName("LeftHandSocket"));
}

 
如果不传递SocketName,绑定的位置不太确定,可以进游戏看效果再设置SpawnActor()函数的transform参数:

/**
	 * Spawn Actors with given transform and SpawnParameters
	 * 
	 * @param	Class					Class to Spawn
	 * @param	Location				Location To Spawn
	 * @param	Rotation				Rotation To Spawn
	 * @param	SpawnParameters			Spawn Parameters
	 *
	 * @return	Actor that just spawned
	 */
	AActor* SpawnActor( UClass* InClass, FVector const* Location=NULL, FRotator const* Rotation=NULL, const FActorSpawnParameters& SpawnParameters = FActorSpawnParameters() );
	/**
	 * Spawn Actors with given transform and SpawnParameters
	 * 
	 * @param	Class					Class to Spawn
	 * @param	Transform				World Transform to spawn on
	 * @param	SpawnParameters			Spawn Parameters
	 *
	 * @return	Actor that just spawned
	 */
	AActor* SpawnActor( UClass* Class, FTransform const* Transform, const FActorSpawnParameters& SpawnParameters = FActorSpawnParameters());

其他参考:

Attaching a weapon or object to hand or socket(蓝图操作)

https://www.youtube.com/watch?v=fyC57urfKtE

如果是为static mesh创建socket,直接在details面板的下面点击创建:


 

具体操作见官方文档:

https://docs.unrealengine.com/latest/INT/Engine/Content/Types/StaticMeshes/HowTo/Sockets/index.html

猜你喜欢

转载自aigo.iteye.com/blog/2274156
今日推荐