转载 http://www.devqinwei.com/2016/11/03/ue4-%E5%B0%86actor-acttach-to-%E5%8F%A6%E4%B8%80%E4%B8%AAactor%E9%9C%80%E8%A6%81%E6%B3%A8%E6%84%8F%E7%9A%84/
项目中,有时会出现人物提着箱子、拎着包、握着枪等情况。
这时需要用到 attach to 函数(或者节点)。
蓝图中:
C++中:
AttachToComponent(ArmMesh, FAttachmentTransformRules::SnapToTargetIncludingScale, MeshSocketName);
这里都是使用AttachToComponent函数,因为以上提到的几种应用场景都是将物体attach到人物角色上,那即是将actor附着到人物蓝图的SkeletalMesh中的Socket上(借助Socket我们还可以设置物体附上之后的transform,通过添加预览物可以看到attach的效果)。
这里要注意Loaction Rule有三种:Keep Relative , Keep World,Snap to Target。
Keep Relative:
将actor在当前场景中的transform移到parent(Socket)中。(当actor在world中处于原始transform时,它最终效果就是在Socket的预览中的效果。
Keep World:
保持actor在当前场景中的transform,对socket设置transform没有意义。但如果socket移动旋转缩放,会跟随相应移动旋转缩放。
Snap to Target:(最常使用)
使用Socket设置的transform,最终效果与actor在当前场景中的transform无关,最终效果等于socket中预览看到的效果。
DetachFromActor要注意,只有Keep Relative和Keep World选项。
如果使用 Snap to Target 进行attach,那么Keep World让Detach之后对保持之前在Socket调整后的最终尺寸到新的场景中(建议使用该方法);如果使用Keep Relative,则会让尺寸使用物体原始尺寸。
AttachTo 更新至 AttachToComponent
原文:http://www.cnblogs.com/hoowall/p/6367806.html