{"repo":"robinwood3d/UnrealTransformGizmo","free":true,"listed":false,"github":"https://github.com/robinwood3d/UnrealTransformGizmo","clone":"git clone https://github.com/robinwood3d/UnrealTransformGizmo.git","description":"Unreal Engine 交互式Transform工具","language":null,"stars":226,"topics":["ue5","unreal","unreal-engine","unreal-engine-5"],"license":"MIT","category":"game-templates","readme_excerpt":"UnrealTransformGizmo English Documentation English Documentation 更新说明 演示视频 用于运行时的简单交互式变换小工具 初步实现了触控操作 效果 使用方法 1. 打开该项目并在内容浏览器中右击Mytaverse这个文件夹，选择迁移到你的项目Content目录下 - 当然也可以直接跳过打开这个项目，直接在Window的文件夹浏览器中将项目Content文件夹下的Mytaverse文件夹整个复制到你的项目的Content文件夹下 2. 打开你的项目所使用的Pawn（或Character）蓝图类（我这个功能是纯蓝图做的，所以只能在蓝图里使用），添加一个名为Pointer Interaction的组件 3. 在Pawn蓝图的BeginPlay事件逻辑后面调用PointerInteraction组件的SetupInteraction节点，同时调用PlayerController的SetShowMouseCursor来显示鼠标 - InteractionSource 参数要设为MouseCursor，启用鼠标交互 - InteractionDistance 表示鼠标交互距离，一般设置一个比较大的距离 - UseMultiRayHit 这个必须启用 - InteractionTypes 要设置为WorldDynamic - Activate 这个地方勾选才能启用交互功能 4. 在Pawn蓝图中添加LeftMouseButton事件并接入PointerInteraction组件的PressPointer和ReleasePointer方法 - 如果鼠标悬停在TransformGizmo上时，按下鼠标左键后会进入拖拽状态，这个时候我们一般不希望视角发生变化。 我这里判断PointerInteraction进入拖拽状态之后，就调用PlayerController的SetIgnoreLookInput来禁用视角控制，在鼠标松开之后在启用视角控制。 5. 在需要显示并启用Gizmo的地方，只需要对BP TransformGizmo对象调用ActivateGizmo就可以了，当然需要先在场景里放置或生成一个BP TransformGizmo对象 - ActivateGizmo方法的InitialTransform表示显示Gizmo时候的初始Transform，一般在对一个Actor启用Gizmo的时候要把该Actor的Transform传入 - TransformEvent会在拖拽Gizmo的时候持续调用并传出当前计算得到的Transform结果，这个结果可以根据需要来使用 接口列表","default_branch":null,"files":null,"tree":[],"storefront":"/r/robinwood3d","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/robinwood3d/UnrealTransformGizmo/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}