游戏的交互有两种类型,分别是点击和滑动

点击的时候,点击相关的坐标位置作为唯一标准,进行传参,去拿到实体

对应的组件是这个

判断的先决条件,还有一个布尔,是否可移动

在前面生成球体的时候,已经把可以点击的球体,这个相关布尔,设置为true的了

先决条件满足之后,就是具体的业务逻辑了,先整一个最终点击的点,然后第二个点跟最终点击的点,进行比较,看是否可以消除(消除相关是后面的逻辑)

滑动的相关逻辑,如果被触发,是会有相关打印信息的 例如这里是向下滑动了一下

对应的是这个

这是游戏交互的逻辑脚本

更新函数,这里是触发点击交互的 参考Entitas——ReactiveSystem<Entity>

这里是滑动交互的 这里有一个相对复杂点的,嵌套 三元运算符

前面的打印提示也是在这里被触发

滑动的话,是根据前面业务逻辑,得到的方向,去进行x和y的相关处理

然后,还会有限制x和y的阈值范围,不会超出gameGameBoard的x和y的数量限制

这里是区域限制的,相关声明定义

而且只能是滑动一个

这个是设计思路流程图

回到点击的逻辑,这里前面的条件都满足,就会触发这个函数,分别是点击前后的两个元素

可以看到,函数内部,是修改了这个Index索引

然后,实体对应的view脚本,是这个

是有相关的监听

触发的监听函数,调用了DOMove函数,进行位置变更就好

所以,点击就可以换位置了,功能实现

继续补充设计思路,这里应该是需要整一个容器去存储

运动交换系统,是这个,然后在这里,初始化创建