实现目标:
点击鼠标时,人物面向鼠标点击方向。松开鼠标时,人物面向跑动方向。
基本思路:
设置一个布尔值bIsChangeRotation。按下鼠标时为真,松开鼠标时为假。每一帧检测bIsChangeRotation,如果为真,那么获得鼠标点击位置,鼠标位置与人物位置相减,获得一个向量。设置人物朝向。
代码实现:
.h文件:
部分解释:
TIck(float deltatime); 这与Unity里的Update相似,每帧调用。
这个函数较为复杂,我谈谈我的大致理解。如有错误请指正。这个函数的主要作用是在触发绑定事件时,调用相应函数。ActionName要与引擎项目设置里输入名称一样。(不区分大小写)
EInputEvent为输入事件,熟悉的话可以直接写出,不熟悉的话可以如上面代码,利用枚举写出。此外,几乎所有E开头的类型都是枚举的,也就是说可以利用代码提示写出来。UserClass为要绑定的类。如我这个需要使用这个类本身的两个函数,所以我填写的是this。最后一个参数就是一个指向函数的指针,也就是将要调用的函数。这一点与unity中的代理有相似之处。