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 Textures
    public GUITexture guiLeft;
    public GUITexture guiRight;
    public GUITexture guiJump;

    //moement variables
    public float moveSpeed = 5f;
    public float jumpForce = 50f;
    public float maxJumpVelocity = 2f;

    private bool moveLeft, moveRight, doJump = false;

    // Use this for initialization
    void Start () {

    }

    // Update is called once per frame
    void Update () {
        //check to see if the screen is being touched
        if (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 jumping
                doJump = false;
            }
        }
    }
}

资源下载

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

Unity 2D Touch Movement的更多相关文章

  1. unity 2d 和 NGUI layer

    http://blog.csdn.net/xtxy/article/details/37876825 在使用unity2d开发游戏的时候,使用了NGUI作为界面,本来二者配合得还挺好,但是一个使用场景 ...

  2. Ubuntu 11.10 安装GMONE3,卸载 UNITY和UNITY 2D

    Ubuntu 11.10安装GNOME3: 1)sudo apt-get install gnome-shell    sudo apt-get install gnome-themes*   (或者 ...

  3. Unity 2D Skeletal Animation

    本文记录在Unity中制作2D 骨骼动画的笔记 Unity版本:4.3 Uni2D 使用骨骼动画前,把Sprite Mesh 的Type 改为 Grid ,设置合适的骨骼数量和分配权重 1.选中创建好 ...

  4. Unity 2D两种常用判断点击的方法

    1.Raycast法 原理相同于3D中得Raycast法,具体使用略有区别. RaycastHit2D hit = Physics2D.Raycast(Camera.main.ScreenToWorl ...

  5. Unity 2D 跑酷道路动起来

    之前做2D的游戏怎样让背景动起来?就想着做成滚屏效果不就行了,今天在网上看到人家做的既简单又方便,唉,忏愧啊!不过还好,下次可以为自己所用了!呵呵 废话就不扯了,新建工程! 1 ,打开Unity 5. ...

  6. UNITY 2D入门基础教程

    Unity4.3增加了原生的2D开发环境,新建项目时选2D http://blog.1vr.cn/?p=1422

  7. Unity 2D Sprite Lighting

    2D游戏中也可以使用灯光?这真是一个好消息,接下来,我将为大家写一下教程 操作步骤 1.创建一个Materilas,修改Shader为 2.创建一个Sprite(使用黑色的图片) 3.创建一个Poin ...

  8. unity 3d-Easy Touch 3教程 转

    Easy Touch 教程 转自:http://www.unitymanual.com/thread-31332-1-1.html 1.import “Easy Touch 3”的资源包 2.创建人物 ...

  9. [Unity] 2D开发学习教程

    豆子先生,据说是官方的一个Demo, 在蛮牛网上有大部分代码的视频讲解. 这个是我学习过程中边看教程边写出来的,功能和原版基本一样,增加了手游的操控. Blog: http://www.cnblogs ...

随机推荐

  1. 使用 JavaScript 和 canvas 做精确的像素碰撞检测

    原文地址:Pixel accurate collision detection with Javascript and Canvas 译者:nzbin 我正在开发一个需要再次使用碰撞检测的游戏.我通常 ...

  2. C# 视频编辑

    VidCoder VidCoder是一个开源免费的DVD/蓝光视频抓取和转码软件.使用HandBrake做为编码引擎.比Handbrake拥有更友好的用户界面. 可裁剪.剪切.字幕编辑.转码等. 官网 ...

  3. ASP.NET MVC4 Forms 登录验证

    Web.config配置: 在<system.web>节下: <authentication mode="Forms"> <forms loginUr ...

  4. 查看Linux版本信息

    如何查看Linux系统使用的版本信息呢? 下面这篇文章收集.整理了一些常见的查看Linux系统版本的方法.由于手头只有Oracle Linux.Centos Linux.Redhat Linux三个版 ...

  5. powerdesigner,eclipse整合安装

    com.sybase.powerdesigner.eclipse.link path=D:\\dbs\\dbtools\\SAP\\PowerDesigner16

  6. Cytoscape.js – 用于数据分析和可视化的交互图形库

    Cytoscape.js 是一个开源的 JavaScript  图形库,您可以使用 Cytoscape.js 进行数据分析和可视化.Cytoscape.js 可以轻松的继承到你的网站或者 Web 应用 ...

  7. 错误日志中关于innodb的问题收集

    1.错误日志报告如下: ..... 120223 23:36:06 InnoDB: Compressed tables use zlib 1.2.3 120223 23:36:06 InnoDB: I ...

  8. iOS 让启动页面延迟的方法

    <1> 利用多线程的方法:[NSThread sleepForTimeInterval:300];

  9. SQL查询(二)

    常用查询技巧 1.获取数据的前3(n)行 ; 2.SQL语句中if语句 在SQL语句中没有直接的if语句,但是有两个函数:DECODE和CASE,他们能够实现if语句的功能 2.1)decode -- ...

  10. Javascript中的Bind 、Call和Apply

    看以下代码: var bind = Function.prototype.call.bind(Function.prototype.bind); 第一眼看上去,我能猜出它究竟是用来做什么的.它把x.y ...