虽然人物可以观察四周了,但你会发现,人物不会朝着看的方向行进,这是因为move_and_slide()是按照全局坐标移动的,下节我们就研究一下“全局坐标”
补:关于视角限制问题
我们可以通过clamp()方法控制"eye"的rotation属性来实现
clamp()方法我之前在2D移动中讲述过
而rotation属性则是一个节点被旋转的弧度(最大为pi,最小为-pi)
我们可以通过写rotation.x获得单一轴旋转的弧度
我一开始直接将其写在_input()函数下:
可....
会出现闪屏
究其原因,是在下疏忽大意了:
clamp()方法在get_node("eye").rotate_x的前面。这意味这在移动完视角后,只有再调用_input()函数时才会将event.relative.x的值修改
解决方法:
将clamp()放到get_node("eye").rotate_x的下面。这样,每次移动完视角后,都会直接运行clamp()。这样就没问题了