最近师兄找我说白猫的操作如何做,  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. NOTIFYICONDATA结构

    //农机调度项目代码 NOTIFYICONDATA m_notifyData; m_notifyIcon.ChangeIcon(IDI_PAUSE, _T("监控终端server已暂停&qu ...

  2. Android菜鸟的成长笔记(28)——Google官方对Andoird 2.x提供的ActionBar支持

    在Google官方Android设计指南中(链接:http://www.apkbus.com/design/get-started/ui-overview.html)有一个新特性就是自我标识,也就是宣 ...

  3. 为iPhone 6设计自适应布局

    Apple从iOS 6加入了Auto Layout后开始就比较委婉的开始鼓励.建议开发者使用自适应布局,但是到目前为止,我感觉大多数开发者一直在回避这个问题,不管是不是由于历史原因造成的,至少他们在心 ...

  4. Filter过滤器实现登录检查

    主要利用filter过滤掉未经登录而直接跳转到非登录访问页面.代码而言的话并不难,只是有几点问题需要注意一下. 1.使用filter需要配置web.xml,如果是/*那么在拦截后的页面会连带jsp页面 ...

  5. Hadoop集群运行JNI程序

    要在Hadoop集群运行上运行JNI程序,首先要在单机上调试程序直到可以正确运行JNI程序,之后移植到Hadoop集群就是水到渠成的事情. Hadoop运行程序的方式是通过jar包,所以我们需要将所有 ...

  6. RMAN-configure命令

    在Oracle 10g中的配置情况 使用RMAN>show all; 可以显示出RMAN 配置参数为: CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # ...

  7. (转).net开发者对android第二周的学习体会

    这一周相对没有春节时这么闲了,白天也比较多的工作要做,每天晚上又要被我三岁的女儿折腾到十点, 实在没有多少时间学习.在前一周的基础上,这周我试着自己练习写了一个个人管理的android的程序,主要实现 ...

  8. onblur判断数字

    window.onload = function () { document.getElementById('text1').onblur = function () { if (isNaN(docu ...

  9. Android入门3:从Toolbar到Material Design

    在Android5.0(API 21)之后,Toolbar被Google推广,逐渐走入大家视野.具体关于Actionbar和Toolbar的对比就不多啰嗦了,跟着潮流走是没错的.下面先上张简单的效果图 ...

  10. silverlight 生成图表 WCF 解析XML代码.svc.cs 文件

    silverlight 调用wcf 文件代码 private ListItem AnalyzeXML(string XMLCode, string Reportdate, string ChartNa ...