想用Bolt做一个鼠标操作的栗子,还是在前面讲的UnityChan的横版游戏上实现吧,就是用鼠标操作让Chan左右行走,虽然这类横版游戏没有这么玩的,但只是为了体现Bolt鼠标操作的实现,我就这么玩了,爱咋咋地!
原来的Chan的行走是靠键盘操作的(见Unity开发备忘录000028:Bolt无代码做游戏——控制角色行走),其流程图如下:
如果原来的键盘操作功能仍然保留,同时又增加了鼠标操作Chan的行走,那就得加一个判断,即当鼠标按下时按鼠标操作玩游戏,没有按下时通过键盘输入玩游戏。
跟键盘操作类似,只要当鼠标按下时,能改变movement变量的值,就能让角色行走,所以这里是只要按住鼠标,就增加3这个值,其后的乘积是为了让角色转身用的。
转身的话,需要将鼠标点击的屏幕位置与角色当前所在的位置做比较,以当前角色正面朝向右方为例,当鼠标在角色的右侧按下时,角色继续向前走,当鼠标在角色的左侧按下时,角色就应该转身然后向左侧走。
但这里有一个坐标转换的问题,即鼠标的坐标系是屏幕坐标系,而角色的坐标系是世界坐标系,这两个坐标系的值是不能简单进行比较的,所以需要将鼠标的屏幕坐标系转换成世界坐标系,然后再进行位置的比较,再将比较的结果用+1(鼠标在角色的右侧按下)和-1(鼠标在角色的左侧按下):
将鼠标操作的结果也流向Rigidbody 2D Set Velocity节点,即可实现鼠标操作控制角色行走的功能。
鼠标操作完整流程图如下: