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. java中判断list是否为空的用法

    1.如果想判断list是否为空,可以这么判断: if(null == list || list.size() ==0 ){ //为空的情况 }else{ //不为空的情况 } 2.list.isEmp ...

  2. LoTVideo:只需两步,让HTML5原生态的Video茁壮成长

    开源地址:https://github.com/dunitian/LoTHTML5/tree/master/LoTVideo 第一步引入lotvideo.js(先确认在这个前面引入了jq包) 第二步: ...

  3. android 学习中的一些问题记录 主要是概念问题

    一些问题记录 应用程序 res 目录常见的目录有哪些,分别放置什么类型的资源? animator/ 和anim/ 放的都是定义动画的XML文件,两个地方的动画类型不同. color/ XML文件:定义 ...

  4. 第一次用Axure~

    刚刚接触axure感觉好多不会呢~但是一步一步来吧~ 操作到后来发现字体的变化很奇怪,总是只有一个字体出现,只有在编辑时才出现我设定的字体. 但最后还是有个样子出来了~做了一个联系的新页面 最后学姐又 ...

  5. 【原】CSS3 Media在常用设备的设置值

    摘要:今天的一个小小的项目中,在各种手机上样式都显示正常,唯独iphone4s的有些许问题.产品经理又说iphone4s用户还挺多的,无奈,只能查一查iphone4s的media值,顺便做个小小总结; ...

  6. 完整的ajax请求投票点赞功能的实现【数据库表一(票数)表二(ip限制重复投票)】

    前端php页面 <?php if(isset($_GET['id'])){ $id=$_GET['id']; } include('data/conn.php'); $sqls="se ...

  7. ETHREAD APC 《寒江独钓》内核学习笔记(4)

    继续学习windows 中和线程有关系的数据结构: ETHREAD.KTHREAD.TEB 1. 相关阅读材料 <windows 内核原理与实现> --- 潘爱民 2. 数据结构分析 我们 ...

  8. MyEclipse------File类的各种方法

    usingFile.jsp <%@ page language="java" import="java.util.*" pageEncoding=&quo ...

  9. HDNOIP201404最短路径

    HDNOIP201404最短路径 难度级别: A: 编程语言:不限:运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 a.b.c是3个互不相等的1 ...

  10. hadoop的live node为0

    1.重新格式化namenode cd ~ rm -rf name mkdir name rm -rf hadoop-2.7.2/logs/ mkdir hadoop-2.7.2/logs/ hadoo ...