最近看了SIKI的三消游戏实现,跟着做了一遍,由于是PC端的,所以做完不方便展示,故而自己采用EasyTouch插件进行结合,开发了手机版的。

在这里主要说下移植时的移动函数问题。废话少说,先贴代码!

Gesture currentGesture = EasyTouch.current;
        if (currentGesture == null)
        {
            return;
        }
        else
        {
            //当点击时,获取当前物体,放入EnterSweet方法
            if (currentGesture.pickedObject != null)
            {
                isMoveEnd = false;
                EnterSweet(sweets[currentGesture.pickedObject.GetComponent<GameSweet>().X, currentGesture.pickedObject.GetComponent<GameSweet>().Y]);
                if (currentGesture.swipe == EasyTouch.SwipeDirection.Right&&!isMoveEnd)
                {
                    if (currentGesture.pickedObject.GetComponent<GameSweet>().X < xColumn-1)
                    {                      
                        PressSweet(sweets[currentGesture.pickedObject.GetComponent<GameSweet>().X + 1, currentGesture.pickedObject.GetComponent<GameSweet>().Y]); //尝试把另一个物体放入交换列表
                        ReleaseSweet();    //调用交换方法
                        isMoveEnd = true;
                    }
                }
                else if (currentGesture.swipe == EasyTouch.SwipeDirection.Up && !isMoveEnd)
                {
                    if (currentGesture.pickedObject.GetComponent<GameSweet>().Y >= 1)
                    {
                        PressSweet(sweets[currentGesture.pickedObject.GetComponent<GameSweet>().X, currentGesture.pickedObject.GetComponent<GameSweet>().Y - 1]); //尝试把另一个物体放入交换列表
                        ReleaseSweet();    //调用交换方法
                        isMoveEnd = true;
                    }
                }
                else if (currentGesture.swipe == EasyTouch.SwipeDirection.Down && !isMoveEnd)
                {
                    if (currentGesture.pickedObject.GetComponent<GameSweet>().Y < yRow-1)
                    {                                        
                        PressSweet(sweets[currentGesture.pickedObject.GetComponent<GameSweet>().X, currentGesture.pickedObject.GetComponent<GameSweet>().Y + 1]); //尝试把另一个物体放入交换列表
                        ReleaseSweet();    //调用交换方法
                        isMoveEnd = true;
                    }
                }
                else if (currentGesture.swipe == EasyTouch.SwipeDirection.Left && !isMoveEnd)
                {
                    if (currentGesture.pickedObject.GetComponent<GameSweet>().X >= 1)
                    {
                        PressSweet(sweets[currentGesture.pickedObject.GetComponent<GameSweet>().X - 1, currentGesture.pickedObject.GetComponent<GameSweet>().Y]); //尝试把另一个物体放入交换列表
                        ReleaseSweet();    //调用交换方法
                        isMoveEnd = true;
                    }
                }
            }
        }

这是Update中检测每次touch屏幕时,获取的物体,对应GameSweet组件下的编号,然后根据滑动方向,决定与上下左右哪个部分进行交换。这里需要注意的是,要判断好选择物体的X和Y,不要移出边界,其他的就是抄代码了。

再次记录下,EasyTouch里判定滑动方向的函数。currentGesture.swipe == EasyTouch.SwipeDirection.Down,然后我增加了一个是否单次移动完成的bool变量,并在每次移动后重置它,保证每次只移动一次。

Unity 三消游戏学习相关推荐

  1. unity 三消游戏源码展示图

    unity三消游戏源码 游戏展示图 源码下载

  2. Unity 2D 游戏学习笔记(1)

    在学习了一段时间的C#后,终于开始学习unity啦,按照unity官方的教程一步一步的来开始学习unity的各种操作. 首先,先用2D Game Kit 来简单熟悉2D游戏的制作,因为是外网打开的比较 ...

  3. Unity 2D 游戏学习笔记(4)

    三.瓦片地图 这次我们来对背景地图的设置,需要用到unity中的瓦片工具Tile.首先在官方教程中下载所需的瓦片资源图片Tile,放入之前存放Ruby图片的Sprites文件夹中.官方教程:世界设计 ...

  4. Unity从头开始开发增强现实(AR)游戏学习教程

    使用Unity 2021构建增强现实飞镖游戏 学习从头开始开发增强现实(AR)游戏,使用AR基金会,货币化,发布游戏玩商店 Build a Augmented Reality Dartboard Ga ...

  5. Unity优化手机游戏学习教程

    流派:电子学习| MP4 |视频:h264,1280×720 |音频:AAC,48.0 KHz 语言:英语+中英文字幕(根据原英文字幕机译更准确)|大小解压后:3.69 GB |时长:6h 44m 创 ...

  6. Unity创造没有代码的游戏学习教程

    流派:电子学习| MP4 |视频:h264,1280×720 |音频:AAC,48.0 KHz 语言:英语+中英文字幕(根据原英文字幕机译更准确)|大小:17.4 GB |时长:17h 18m 你会学 ...

  7. Unity 3D游戏代码编程学习教程 Full Guide To Unity 3D C#: Learn To Code Making 3D Games

    Unity 3D游戏代码编程学习教程 Full Guide To Unity 3D & C#: Learn To Code Making 3D Games Full Guide To Unit ...

  8. Unity 2D 游戏开发 官方视频学习顺序

    unity2D的官方tutorial上已经有了不少的教程视频,都看一遍的话最起码也知道unity能干什么了. 自学这段时间里我翻译不少,之前也发过,都放到b站了,基本都是1080p的,而且压制后文件不 ...

  9. 每天学习一点新知识(一)——Unity开发游戏的拆包

    每天学习一点新知识(一)--Unity开发游戏的解包 用了CSDN有一段时间了,但一直都没有写过blog,只是在输入,没有输出.而且一直主要都是在查一些作业.题解什么的,还是希望自己能够多学到一些新东 ...

  10. 【Unity 3D 学习】 《Unity 3D 游戏开发》(第二版 宣雨凇著) 书中一些名字注解

    前言 在学习<Unity 3D 游戏开发>这本书的过程中碰到了一些术语,比如序列化.反序列化.反射等,这些基本都是常见的程序员行话,但是感觉自己对这些术语总是一知半解,为了让自己更清楚地知 ...

最新文章

  1. [小功能]按阅读数、评论数、评论时间查看首页随笔
  2. webstorm代码行数统计_【Rust每周一库】Tokei 统计代码行数等信息的实用工具
  3. 织梦二次开发写php,PHP教程—DedeCMS二次开发(二)
  4. Leetcode 5. 最长回文子串(Longest Palindromic Substring)
  5. isinstance_Java类class isInstance()方法及示例
  6. sift计算描述子代码详解_浅谈SIFT特征描述子
  7. python其他字符转换为ascii码
  8. 日期选择器_FPGA逻辑部分Verilog实验-选择器电路
  9. xshell与虚拟机VMware中centos6.7系统突然连不上
  10. Visual Basic .NET中操作MsAgent
  11. Android MD5加密
  12. android ios 对比 组件_Android、iOS历史版本对比
  13. 建站系列:有云服务器和域名怎么建设网站?
  14. Tp5 实现 think-queue 队列操作
  15. 青少年qsnctf [登录试试] 攻略
  16. EOS主网上线后imtoken钱包和麦子钱包的操作
  17. 如何使用微信开发者工具调试在微信端访问的网页
  18. 实战|Python爬取字节跳动1W+招聘信息
  19. bzoj4864: [BeiJing 2017 Wc]神秘物质
  20. 浩客XM:面对增长困局,抓体验真的有用吗?

热门文章

  1. python画反比例函数_拟合一个反比例函数
  2. 加息对银行股影响|加息是对银行股的利好
  3. elasticsearch7.5.0 集群搭建
  4. 为什么客户端最后还要等待2MSL?
  5. Oracle系列之--Profile
  6. Android进程系列1---进程基础
  7. 四个技巧教你解决电磁干扰问题
  8. java实现获取当前日期、农历、周
  9. linux gst qt,c – 致命错误:gst / gst.h:没有这样的文件或目录(使用CMake)
  10. 问道手游服务器修改密码,问道手游账号安全设置及找回密码教程 玩转问道