最近师兄找我说白猫的操作如何做,  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. android layout属性介绍

    android:id 为控件指定对应的ID android:text 指定控件其中显示的文字,须要注意的是,这里尽量使用strings.xml文件其中的字符串 android:gravity 指定Vi ...

  2. js中的referrer使用,返回上一页

    js完整代码: <script language="javascript"> var refer=document. referrer ;     document.g ...

  3. compilation 元素(ASP.NET 设置架构)

    配置 ASP.NET 用于编译应用程序的所有编译设置. <configuration> 元素  system.web 元素(ASP.NET 设置架构)    compilation 元素( ...

  4. iOS~~MD5加密

    // 一般加密 +(NSString *)md5String:(NSString *)str { const char *password=[str UTF8String]; unsigned cha ...

  5. Oracle 账户被锁定

    哎 每次安装oracle的时候总是忘了将用户解锁,结果就蛋疼了,从网上找到一个简单的解决方案 在CMD命令输出如下: sqlplus /nolog alert user system account ...

  6. hdu 1215 七夕节

    Problem Description 七夕节那天,月老来到数字王国,他在城门上贴了一张告示,并且和数字王国的人们说:"你们想知道你们的另一半是谁吗?那就按照告示上的方法去找吧!" ...

  7. JSP和Servlet的区别。

    1.jsp经编译后就变成了Servlet.(JSP的本质就是Servlet,JVM只能识别java的类,不能识别JSP的代码,Web容器将JSP的代码编译成JVM能够识别的java类)2.jsp更擅长 ...

  8. struts.custom.i18n.resources国际化详解(一)

    每种框价都会有国际化的支持,struts2的国际化大致上分为页面的国际化,Action的国际化以及xml的国际化 首先在struts.properties文件中加入以下内容:struts.custom ...

  9. 兼容性之IOS下label 无法点击

    今天做移动端的页面时碰到一个稀奇的问题,那就是点击label无法选中与之相关的checkbox,下面是问题代码: <li class="list-item clearfix notif ...

  10. c# 大量拼接xml时内存溢出解决方法

    public static string SelectUNnormalPriceSTrans(EUNnormalPriceS rqInfo) { string guidStrJianJclFirst ...