如果图片太小,可以Ctrl+鼠标滑轮放大速小
我的思路是首先射线选中你需要改变的物体,然后通过显示UI,通过UI来明确的更改我们想要的材质。
首先我们需要一个UI,很简单这里我就不截图演示了。然后通过蓝图激活UI。
激活UI.jpg
然后我们还需要在程序运行的时候,鼠标可以实时显示。
激活鼠标.jpg基本思路是点击鼠标右键,从摄像机处发送一条射线,终点在鼠标点击的位置(把鼠标的屏幕坐标转换成世界坐标)。
选中摄像机以它为射线的起点,找到GetworldLocation节点
射线起点.jpg
屏幕转换世界坐标
屏幕坐标转换.jpg
这个节点就是UE4中的射线相对于U3D中的Ray
射线.jpg
通过射线选择物体,改变该物体的材质,表明选择了该物体。Break HitResult节点中 Blocking Hit返回的是一个bool值,如果选中了物体,那么返回True,否则返回false。现在我们新建一个Bool局部变量RayBool,用来表示是否选中物体。HitActor返回的是射线选中的物体,那么我们新建一个Actor局部变量Temp_Actor,用来表示选的物体。
摄像机射线图.jpg如果没有选中物体,那么UI隐藏。只有选中物体时UI才可以显示。
激活或隐藏UI.jpg到了这里我们已经得到需要更改材质的物体,下面需要来通过UI来更改材质,这里我用数组把需要用到的材质存储(懒。。),新建一个Material类型的数组Array_First
数组.jpg然后自定义一个事件,方便等下UI调用。
更改材质.jpg下面来创建一个UI按钮,选择OnClicked,这是个点击事件。
UI和点击事件.jpg按钮的点击事件
点击事件.jpg
网友评论