Unity 白猫操作小实例
最近师兄找我说白猫的操作如何做, 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 framevoid 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
转载于:https://www.cnblogs.com/plateFace/p/4474072.html
Unity 白猫操作小实例相关推荐
- Entity Framework 的小实例:在项目中添加一个实体类,并做插入操作
Entity Framework 的小实例:在项目中添加一个实体类,并做插入操作 Entity Framework 的小实例:在项目中添加一个实体类,并做插入操作 1>. 创建一个控制台程序 2 ...
- android 字符串数组去重,GitHub - deng-ming-hao/ec-do: 实例为日常开发常用的小实例,包括数组去重,打乱数组,字母大小写转换,cookie操作的封装等。...
ec-do 自己封装的常用操作实例 实例为日常开发常用的小实例,包括数组去重,打乱数组,字母大小写转换,cookie操作的封装等. 使用方法 引入ec-do.js //去除空格 ecDo.trim(' ...
- 40个Unity游戏开发小阴招
推荐阅读: 我的CSDN 我的博客园 QQ群:704621321 我的个人博客 Unity游戏开发小技巧集结,不用谢我,我只是大自然的搬运工 1. 借助 Prefab 暂存数据 可以直接在脚本的 In ...
- python 高并发 select socket_socket + select 完成伪并发操作的实例
实例如下: #!/usr/bin/env python # -*- coding: utf-8 -*- import socket #创建一个socket对象 sk1 = socket.socket( ...
- php django mysql配置文件_Mysql学习Django+mysql配置与简单操作数据库实例代码
<Mysql学习Django+mysql配置与简单操作数据库实例代码>要点: 本文介绍了Mysql学习Django+mysql配置与简单操作数据库实例代码,希望对您有用.如果有疑问,可以联 ...
- php mysql PDO 查询操作的实例详解
php mysql PDO 查询操作的实例详解 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ...
- spring+mybatis之声明式事务管理初识(小实例)
前几篇的文章都只是初步学习spring和mybatis框架,所写的实例也都非常简单,所进行的数据访问控制也都很简单,没有加入事务管理.这篇文章将初步接触事务管理. 1.事务管理 理解事务管理之前,先通 ...
- %rowtype mysql_Oracle %type和%rowtype小实例
//%type //如果声明的变量是直接映射到数据库的某一列上,那么就可以使用%type关键字将变量 //锚定到这个列上.这样做有什么 Oracle %type和%rowtype小实例 [日期:201 ...
- “七层架构”-----实践篇-登录小实例
上一篇博客小编简单介绍了一下近期在软件开发过程中由三层架构演变而来的"七层架构"基本理论点.理论知识与产生结果之间还夹杂着一个重要的点---实践.用实践来检验理论知识,丰富知识内涵 ...
最新文章
- 题目 1083:【蓝桥杯】【入门题】Hello, world!
- 在线qmc0转换mp3工具_如何将M4A格式的音频转换为MP3格式?只需一步搞定
- Rest Framework:序列化组件
- VTK:Utilities之FunctionParser
- python快速入门步骤_Python快速入门
- jQuery基础部分笔记
- 一条SQL查询语句是如何执行的? MySql杂谈
- 带你尝鲜LiteOS 组件EasyFlash
- excel if函数 android,Excel函数公式:多条件判断你还在用If函数来实现,那就真的Out了...
- [sqlite] android create db in SD card
- 软件基本功:代码要有道理
- [李景山php]每天TP5-20161206|Loader.php-4
- 【数字信号调制】基于matlab GUI AM+FM+DSB+SSB调制解调【含Matlab源码 1212期】
- 在linux下运行.o文件,Linux环境下在可执行程序中嵌入资源文件
- Oracle nlssort()中文排序
- 围棋棋盘有多少正方形 19*19
- 如何申请注册在国内可以登录使用国外邮箱?
- 简述自动化测试实习收获
- 神经网络的具体应用实例,各种神经网络的应用
- 什么是 AES-GCM加密算法
热门文章
- CString与std::string unicode下相互转化
- Log4j 2使用教程
- Simple DNS Plus 5.2 build 117
- Mac下下载android4.2源码,进行源码调试
- Keywords: Flash( Scaleform ) UI
- buntu 8.04 安装 mysql 无提示输入用户名 密码 ,怎么修改
- VS 2010 和 .NET 4.0 系列之《WPF 4》篇
- 8086的两种工作模式_Buck变换器工作原理
- sql嵌套查询返回多个字段_list4 SQL复杂查询
- 太阳花浏览器_一道浏览器面试题,就能看出你的前端功底