Demo试玩(Kongregate既然也有广告时间了 --!)http://www.kongregate.com/games/zhaoqingqing/2d-touch-movement

操作步骤

1、下载素材 http://pan.bai du.com/s/1gdkQz8v

2、新建三个GUITexture(Joystick)及一个Sprite(Nyan)

场景搭建

3、创建背景及Platform(添加BoxCollider2D)

TouchControls.cs

4、创建脚本 TouchControls.cs

using UnityEngine;
using System.Collections;public class TouchControls : MonoBehaviour {//gui Texturespublic GUITexture guiLeft;public GUITexture guiRight;public GUITexture guiJump;//moement variablespublic float moveSpeed = 5f;public float jumpForce = 50f;public float maxJumpVelocity = 2f;private bool moveLeft, moveRight, doJump = false;// Use this for initializationvoid Start () {}// Update is called once per framevoid Update () {//check to see if the screen is being touchedif (Input.touchCount > 0){Touch t = Input.GetTouch(0);//get the touch info//did the touch active just begin?if (t.phase == TouchPhase.Began){//are we touching  the left arrow?if (guiLeft.HitTest(t.position, Camera.main)){Debug.Log("Touching left Control");moveLeft = true;}if (guiRight.HitTest(t.position, Camera.main)){Debug.Log("Touching right Control");moveRight = true;}if (guiJump.HitTest(t.position, Camera.main)){Debug.Log("Touching jump Control");doJump = true;}}//did the touch end?if (t.phase == TouchPhase.Ended){doJump = moveLeft = moveRight = false;rigidbody2D.velocity = Vector2.zero;}}//is the left mouse button down?if (Input.GetMouseButtonDown(0)){if (guiLeft.HitTest(Input.mousePosition, Camera.main)){Debug.Log("touching left control");moveLeft = true;}if (guiRight.HitTest(Input.mousePosition, Camera.main)){Debug.Log("touching right control");moveRight = true;}if (guiJump.HitTest(Input.mousePosition, Camera.main)){Debug.Log("touching jump control");doJump = true;}}if (Input.GetMouseButtonUp(0)){doJump = moveLeft = moveRight = false;rigidbody2D.velocity = Vector2.zero;}}void FixedUpdate(){if (moveLeft){rigidbody2D.velocity = -Vector2.right * moveSpeed;}if (moveRight){rigidbody2D.velocity = Vector2.right * moveSpeed;}if (doJump){ If we have not reached the maximum jump velocity, keep applying force.if (rigidbody2D.velocity.y < maxJumpVelocity){rigidbody2D.AddForce(Vector2.up * jumpForce);}else{//otherwise stop jumpingdoJump = false;}}}
}

资源下载

工程下载:http://pan.baidu.com/s/1dDpEkhz

转载于:https://www.cnblogs.com/zhaoqingqing/p/3633725.html

Unity 2D Touch Movement相关推荐

  1. Unity 2D 学习笔记:游戏实例Sunnyland

    Unity 2D 学习笔记:游戏实例Sunnyland 01安装软件&导入素材 02编辑素材&Tilemap 03图层layer&角色建立 04角色移动 05角色方向& ...

  2. 宣布Unity 2D挑战赛获奖者

    Thanks to everyone who contributed to our 2D Challenge! We received 212 awesome submissions that und ...

  3. Unity 2D游戏开发教程之摄像头追踪功能

    Unity 2D游戏开发教程之摄像头追踪功能 上一章,我们创建了一个简单的2D游戏.此游戏中的精灵有3个状态:idle.left和right.这看起来确实很酷!但是仅有的3个状态却限制了精灵的能力,以 ...

  4. Unity 2D游戏开发教程之游戏中精灵的跳跃状态

    Unity 2D游戏开发教程之游戏中精灵的跳跃状态 精灵的跳跃状态 为了让游戏中的精灵有更大的活动范围,上一节为游戏场景添加了多个地面,于是精灵可以从高的地面移动到低的地面处,如图2-14所示.但是却 ...

  5. Unity 2D游戏开发教程之为游戏场景添加多个地面

    Unity 2D游戏开发教程之为游戏场景添加多个地面 为游戏场景添加多个地面 显然,只有一个地面的游戏场景太小了,根本不够精灵四处活动的.那么,本节就来介绍一种简单的方法,可以为游戏场景添加多个地面. ...

  6. Unity 2D游戏开发教程之精灵的死亡和重生

    Unity 2D游戏开发教程之精灵的死亡和重生 精灵的死亡和重生 目前为止,游戏项目里的精灵只有Idle和Walking这两种状态.也就是说,无论精灵在游戏里做什么,它都不会进入其它的状态,如死亡.于 ...

  7. ​Unity 2D游戏开发教程之2D游戏的运行效果

    ​Unity 2D游戏开发教程之2D游戏的运行效果 2D游戏的运行效果 本章前前后后使用了很多节的篇幅,到底实现了怎样的一个游戏运行效果呢?或者说,游戏中的精灵会不会如我们所想的那样运行呢?关于这些疑 ...

  8. Unity 2D游戏开发教程之使用脚本实现游戏逻辑

    Unity 2D游戏开发教程之使用脚本实现游戏逻辑 使用脚本实现游戏逻辑 通过上一节的操作,我们不仅创建了精灵的动画,还设置了动画的过渡条件,最终使得精灵得以按照我们的意愿,进入我们所指定的动画状态. ...

  9. Unity 2D游戏开发快速入门第1章创建一个简单的2D游戏

    Unity 2D游戏开发快速入门第1章创建一个简单的2D游戏 即使是现在,很多初学游戏开发的同学,在谈到Unity的时候,依然会认为Unity只能用于制作3D游戏的.实际上,Unity在2013年发布 ...

最新文章

  1. 把ct图像像素值转化为_数字图像概论与基础
  2. DLL中导出函数的声明有两种方式
  3. CONFIGURE CONTROLFILE AUTOBACKUP ON/OFF;
  4. extern和static的区别
  5. java不用插件播放媒体文件_java servlet不用插件上传文件:
  6. 生成step文件_利用opencv给彦女王生成一副蒙太奇画像
  7. 怎么修改腾讯视频的昵称
  8. WebStorm 格式化代码 - 快捷键
  9. spring session的生命周期
  10. 图像处理:透镜畸变及校正模型
  11. C2597 LNK2001 C++静态成员函数、变量理解
  12. 【频域分析】频谱泄露、频率分辨率、栅栏效应
  13. 美团下拉菜单html5,jQuery vue仿美团订餐系统分类菜单切换代码
  14. 上班可明目张胆摸鱼玩的游戏(这谁能看出是在玩游戏)
  15. java的json解析_java中json的使用和解析
  16. excel表格打印每页都有表头_教你一招Excel打印技巧:每页有表头标题,阅读起来是真方便...
  17. Caused by: java.io.IOException: Keystore was tampered with, or password was incorrect
  18. 一个初创企业的“生还”记录
  19. 二阶可导的充要条件_可导函数在x
  20. 跨境电商系统对接-进口篇

热门文章

  1. vue-cli+webpack打包配置
  2. nginx websocket 代理
  3. 思科交换机2950 强制恢复出厂设置(清密码)
  4. 微众银行互联网架构首次曝光
  5. IAP升级功能编写初期的一些困惑与疑问---完毕功能后的总结
  6. windows上安装Metasploit Framework 4.0
  7. 如何让大数据分析更有效
  8. 哪些影响大数据分析发展
  9. 怎么将tflite部署在安卓上_手把手教程:如何从零开始训练 TF 模型并在安卓系统上运行...
  10. mysql 组复制 不一致_MySQL主从复制什么原因会造成不一致,如何预防及解决