最近师兄找我说白猫的操作如何做,  0.0 结果白猫没有android的客户端玩不了,看了下视频介绍就简单做了下

效果图:

 

核心代码:

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System; public class Test : MonoBehaviour { private Test() { } private Vector3 startMouseDown;
private Vector3 lastMouseDown;
private float pressTimer;
private bool isCounter; //开始计数
private bool isDrag; //开始拖动
private bool isLasting; //开始持久点击 public float pressTime; //单击
public float pressLastingTime; //持久点击
public float dragDistance; //拖动大于多少才开始生效 #region 事件
public static Action<Vector3> StartPressEvent;
public static Action<Vector3> EndPressEvent; public static Action<Vector3> StartDragEvent;
public static Action<Vector3> EndDragEvent; public static Action<Vector3> StartLastingEvent;
public static Action<Vector3> EndLastingEvent;
#endregion #region 测试方法
void Awake()
{
StartPressEvent += StartPress;
EndPressEvent += EndPress; StartDragEvent += StartDrag;
EndDragEvent += EndDrag; StartLastingEvent += StartLasting;
EndLastingEvent += EndLasting;
} private void StartPress(Vector3 v)
{
Debug.Log("开始单击事件");
} private void EndPress(Vector3 v)
{
Debug.Log("结束单击事件");
} private void StartDrag(Vector3 v)
{
Debug.Log("开始拖动事件");
} private void EndDrag(Vector3 v)
{
Debug.Log("结束拖动事件");
} private void StartLasting(Vector3 v)
{
Debug.Log("开始持续点击事件");
} private void EndLasting(Vector3 v)
{
Debug.Log("结束持续点击事件");
}
#endregion // Update is called once per frame
void Update () { if (Input.GetMouseButtonDown(0))
{
isCounter = true;
startMouseDown = Input.mousePosition;
} if (Input.GetMouseButtonUp(0))
{
lastMouseDown = Input.mousePosition;
isCounter = false; if (isDrag)
{
//拖动
if (EndDragEvent != null) EndDragEvent(Input.mousePosition);
isDrag = false;
}
else if (isLasting)
{
//持久点击
if (EndLastingEvent != null) EndLastingEvent(Input.mousePosition);
isLasting = false;
}
else
{
//单击
if (EndPressEvent != null) EndPressEvent(Input.mousePosition);
} } if (isCounter)
{
//开始计数
pressTimer += Time.deltaTime;
}
else
{
if (pressTimer > 0 && pressTimer < pressTime)
{
Debug.Log("单击");
if (StartPressEvent != null) StartPressEvent(Input.mousePosition); } pressTimer = 0f;
} if (isCounter && Mathf.Abs(Vector3.Distance(startMouseDown, Input.mousePosition)) > dragDistance && isLasting == false)
{
Debug.Log("正在拖动");
isDrag = true; if (StartDragEvent != null) StartDragEvent(Input.mousePosition); //让人物跟谁手指的方向移动
return;
} if (isCounter && pressTimer > pressLastingTime && isDrag == false)
{
Debug.Log("持久点击");
isLasting = true; if (StartLastingEvent != null) StartLastingEvent(Input.mousePosition); //出现技能图标,然后滑动到技能哪里就可以触发技能 return;
} } }

 

Unity5 + UGUI制作

完整的demo: http://yunpan.cn/cjHbIaXvzemax  访问密码 7607

Unity 白猫操作小实例的更多相关文章

  1. 循序渐进VBA EXCEL数据操作小实例

    1 向指定单元格区域内写入数据 Sub example1() ) arr() = Array("A", "B", "C", "D& ...

  2. Entity Framework 的小实例:在项目中添加一个实体类,并做插入操作

    Entity Framework 的小实例:在项目中添加一个实体类,并做插入操作 1>. 创建一个控制台程序2>. 添加一个 ADO.NET实体数据模型,选择对应的数据库与表(Studen ...

  3. C#开发中使用Npoi操作excel实例代码

    C#开发中使用Npoi操作excel实例代码 出处:西西整理 作者:西西 日期:2012/11/16 9:35:50 [大 中 小] 评论: 0 | 我要发表看法 Npoi 是什么? 1.整个Exce ...

  4. canva实践小实例 —— 马赛克效果

    前面给大家带来了操作像素的API,此时此刻,我觉得应该配以小实例来进行进一步的说明和演示,以便给大家带来更宽广的视野和灵感,你们看了我的那么多的文章,应该是懂我的风格,废话不多说,进入正题: 这次给大 ...

  5. canvas实践小实例一 —— 画板工具

    前面讲了一部分的canvasAPI的基础知识,光看API的介绍确实是很无趣乏味,需要一点可以激发内心的激情的东西来激励自己来学习,于是就了伴随canvasAPI学习的小实例,这样通过API的知识,结合 ...

  6. Selenium2学习-010-WebUI自动化实战实例-008-Selenium 操作下拉列表实例-Select

    此文主要讲述用 Java 编写 Selenium 自动化测试脚本编写过程中,对下拉列表框 Select 的操作. 下拉列表是 Web UI 自动化测试过程中使用率非常高的,通常有两种形式的下拉列表,一 ...

  7. 一个简单的Android小实例

    原文:一个简单的Android小实例 一.配置环境 1.下载intellij idea15 2.安装Android SDK,通过Android SDK管理器安装或卸载Android平台   3.安装J ...

  8. WCF小实例以及三种宿主

    WCF小实例以及三种宿主 最近一直在学习WCF相关知识,下面将通过一个小实例对所学的知识进行简单的回顾:本实例是一个简单三层操作数据库,并且也简单实现的三种宿主(控制台宿主,IIS宿主以及Window ...

  9. Spring初识(通过小实例清晰认识Spring)

    1.spring架构: spring是J2EE应用程序框架,是轻量级的IoC和AOP的容器框架,主要是针对javaBean的生命周期进行管理的轻量级容器,可以单独使用,也可以和Struts框架,iba ...

随机推荐

  1. python字符串(移除空白,长度,索引,分割,切片,拼接,格式化输出)

    常用功能: 移除空白: >>> name = "meng" >>> name 'meng' >>> name.strip() ...

  2. 解决方案--java执行cmd命令ProcessBuilder--出错Exception in thread "main" java.io.IOException: Cannot run program "dir d:\": CreateProcess error=2(xjl456852原创)

    当我尝试在java中通过ProcessBuilder运行window的cmd命令时出现错误: public static void main(String [] args) throws IOExce ...

  3. 去掉MySQL字段中的空格

    mysql replace 函数   语法:replace(object,search,replace)   意思:把object中出现search的全部替换为replace   案例: SQL Co ...

  4. hibernate错题解析

    01 Hibernate错题分析   解析: 此题目考查的是对Hibernate中交叉连接的理解.HQL支持SQL风格的交叉连接查询,交叉连接适用于两个类之间没有定义任何关联时.在where字句中,通 ...

  5. Gson源码分析之Json结构抽象和注解使用

    github上的博客地址: http://chuyun923.github.io/blog/2015/01/06/gsonyuan-ma-fen-xi/ XML和Json作为最常用的两种网络传输格式而 ...

  6. Android服务Service总结

    转自 http://blog.csdn.net/liuhe688/article/details/6874378 富貴必從勤苦得,男兒須讀五車書.唐.杜甫<柏學士茅屋> 作为程序员的我们, ...

  7. [转载]C#开源项目(国外的还是很多)

    C#开源项目(国外的还是很多)一.Ajax框架Ajax.NET Professional (AjaxPro)是最先把AJAX技术在微软.NET环境下的实现的AJAX框架之一.它在客户端脚本之上创建代理 ...

  8. IIS 7管理API——Microsoft.Web.Administration介绍

    原文:http://www.cnblogs.com/dflying/archive/2006/04/17/377276.html 本文翻译整理自Carlos Aguilar Mares的blog文章: ...

  9. JS传递参数时对中文进行编码和解码

    var b ="啊,我要过去";                            var a = encodeURI(b);//对中文编码                   ...

  10. Android原生Calendar代码阅读(一)

    原生Calendar代码: 5.0Calendar源码.rar 提取的JavaDoc: Calendar的javadoc.rar 1. AsyncQueryService和AsyncQueryServ ...