添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

有时候我们使用Unity设计游戏需要对游戏对象双击让他执行特殊操作,比如奔跑,位移之类的的。实现方法很简单,核心语句是

if (Input.GetKeyDown(KeyCode.W))
            t2 = Time.realtimeSinceStartup;
            if (t2 - t1 < 0.2f)
                if(Input.GetKey(KeyCode.W))
                    run = true;
            t1 = t2;

之后其余的功能可以根据自己的需求添加,下面是个小Demo,供大家参考。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Move : MonoBehaviour {
    double timeVal = 0.2f; //设置冷却时间,从上一次奔跑到下一次奔跑有0.2s冷却,同时解决了刚跑完抬起W键短时间再次按下W会继续跑的问题。
    bool run = false;
    bool walkFlag = false;
    double t1;
    double t2;
    void FixedUpdate()
        if (Input.GetKeyDown(KeyCode.W)&& walkFlag == false)
            t2 = Time.realtimeSinceStartup;
            if (t2 - t1 < 0.2f)
                if(Input.GetKey(KeyCode.W))
                    run = true;
                Debug.Log("双击");
            t1 = t2;
        else if(walkFlag == true)
            timeVal -= Time.fixedDeltaTime;
            if(timeVal<=0)
                walkFlag = false;
            if (walkFlag == false)
                timeVal = 0.2f;
        if (!run)
            if (Input.GetKey(KeyCode.W))
                Debug.Log("Walking");
            if (Input.GetKeyUp(KeyCode.W))
                Debug.Log("Stopping");
        if (run)
            if (Input.GetKey(KeyCode.W))
                Debug.Log("Running");
            if(Input.GetKeyUp(KeyCode.W))
                Debug.Log("Stopping");
                run = false;
                walkFlag = true;
                                    我们要实现的功能是双击疾跑,当玩家快速地按下同一个移动键两次时能进入跑步状态我假设快速按下的定义为0.2秒内,按下同一按键两次简单的分析一下需求,实现它的关键在于获得按键按下的时间,我们需要知道第一次按下按键的时间,然后判断规定时间内有没有按下按键有两种实现方法第一种启动一个计时器,判断在计时器结束之前有没有再次按下这个键第二种是分别记录下两次按键的时间,然后用第二次按下的时间减去第一次按下的时间,判断是否小于0.2。
我就找了很多浏览器,一个一个试着使用。
最后我选择了GreenBrowser,因为我发现其他浏览器虽然都各有各的优点,
但GreenBrowser是综合素质最高的。最基本的易用性绝对是最好的,你要是用熟了GreenBrowser,
你会发现很多方便实用的功能或快捷键,没有一个浏览器比他全,至少都要缺几个。
而且他小巧只有600多K,免安装使用,纯绿色啊!
....-- lzgs
GreenBrowser浏览器有很多使网游爱好者舒心的功能,是其他浏览器没有的,也是本人不愿舍弃GreenBrowser浏览器的重要原因。 例如:
1、状态栏的选择格式,我把**、星期、在线计时、空闲物理内存、已打开页面计数放置在页面,使用起自己的机器就很惬意,对机器状态一目了然。
2、无与伦比的强大而全面的搜索功能。在“工具栏”-“搜索”-“设置搜索引擎”可以随意设置自己喜欢的搜索工具。
3、“自动滚屏”功能,比较鼠标中键滚屏功能的速度更稳定。
很多功能需要使用者逐一体会。
....-- xiexie
其实一般人用什么浏览器都够用了. 如果你是高手或者每天都要花大量时间挂在网上,推荐你使用 GreenBrowser.
GB的按方向鼠标拖拽,搜索栏和状态栏是所有浏览器里面最强大的.强烈推荐.
....-- User
我是做互联网的,每天用浏览器接近10小时,我们部门的同事也是,当你的电脑开着PS DW 再开N个页面,开着WORD Excel foxmail QQ MSN BQQ再开个听歌的播放器的时候就知道有多痛苦了。我们部门10个人,一个用****的我一个用GB的其他都是**,每天到了下午机器慢的要死的时候,只有我的机器撑得住,时间长了同事都觉得有点奇怪,后来我给他们推荐GB,开始他们都不肯换,觉得**好用,因为大家都用过很多浏览器。
后来慢慢的10个人都换了GB..都觉得很赞,4个多月了,没一个人说过难用。... 所以我觉得 GB的推广做的不好,相比其他浏览器而言,知道GB的人真是太少了。
另外就是并不是GB不好用,而且自己没有设置好,刚用GB的时候需要设置很多东西,才能变的适合自己,很多人都没什么耐心,用两 天就开始骂娘...
....-- hilinfeng
就是因为**集成的搜索太少才用的gb,我自定义了10个搜索按钮,分别是百度、google、google(手气不错)、百度 (歌曲)、Sogua、华军软件、天空软件、金山词典、teein、百度贴吧,用着爽,一字排开十个按钮看着也爽!
....-- vlwow
最最最喜欢就是GB的搜索~ “其搜索方式丰富多样,而且设计多一针见血,不取向浮华,不刻意模仿,却着重在朴实和实 用上花足功夫。 ” 说得好。这话实在。
....-- duskymagus
浏览器少说也试过二三十种了,用久了才知道gb的好处
....-- sandro26
GB超级稳定的性能及较快的速度和较小的资源占用正是现在其他IE内核浏览器所欠缺的,也是我们最需要的,因此GB是最好的IE内核浏览器。
....-- wjse
同样很喜欢GB!!喜欢她的纤细、喜欢她的自由制定
....-- a__gu
我觉得GreenBrowser这个浏览器才是最易用的,最快的浏览器,大家试试啊。鼠标手势很全,搜索功能强大的掉渣!
....-- lilik
GB是最好的浏览器,现在用不惯别的浏览器啊!GB做得实在是太人性化了!
....-- winxy
初次接触gb就喜欢上他了,随着日益的了解,更是越来越顺手,几乎离不开他了,gb-真的很人性化的浏览器。
....-- zmg7852
用过、见过、听说过很多浏览器,全面地评价,还是觉得GB是最好用的浏览器!功能强大,使用方便,而且很多特色是其它浏览器没有的。GB并非完美,于是换用其它浏览器,用了一段时间之后,还是换回GB。界面朴实无华的GB虽然没有其它浏览器那么著名,有些网站公布的用户数量排名中,GB并不显眼,但是——它是最好的!用过几种浏览器才有这个体会!
    // Manages a first person character
    // RequitrComponent的作用是,直接将对象的组件进行绑定,而不需要从incpector去进行设置,避免错误
                                    关于被高亮时的颜色:如果一个按钮没有被点击过,且我们的鼠标悬在按钮上的话,这个按钮就会处于高亮状态,会进行高亮颜色/图片/动态过渡,然后我们点击一次这个按钮后,再把鼠标悬在按钮上时,按钮就不会再进行高亮过渡了。在这里我们可以为当前导航对应的按钮选择键盘按上的时候导向那个按钮,键盘按下的时候又导向那个按钮 (左右同理,然后选择按钮的方式就是将层级中的按钮文件拖拽到选项框中,或者直接点选项框进行选择)上面由上到下分别是:正常颜色,被高亮时的颜色,被按下时的颜色,被选择时的颜色,已禁用颜色,色彩乘数。...
                                    在游戏开发中,为玩家提供自定义按键设置的功能是一项重要的特性。它允许玩家根据自己的喜好和习惯来配置游戏的按键布局,从而提升游戏体验。在本文中,我们将介绍如何在Unity中创建一个自定义按键设置界面,并保存玩家的按键配置。
                                    首先声明,博主使用的是Unity5.3.2(64)最近几关于Unity的博客是博主学习了一个RPG游戏后把一部分功能摘出来做的一个总结,这是关于人物移动的。废话不多说:using UnityEngine;
using System.Collections;public class PlayerDirection : MonoBehaviour {    public Vector3 target
                                    最新补充。
         一般在做鼠标选择时是从摄像机向目标点发送一条射线,然后取得射线与对象相交的点来计算3D目标点。后来在开发中发现了一个问题(射线被别的对象挡住了),就是如果主角的前面有别的游戏对象挡着。此时如果使用射线的原理,鼠标选择被档的对象,这样主角就会向被当的对象的方向行走。为了解决这个问题,我放弃使用发送射线的方法,最后通过2D的方法完美的处理了这个问题。
                                    unity有默认的单击事件,没有双击效果,需要的话要自己实现。没有做过的人,第一次会有点发蒙,其实原理很简单,创建一个变量,记录两次点击的时间差,如果这个时间差很短,那就认为是个双击。
void DoubleClick(GameObject go, PointerEventData data)
        if(Time.realtimeSinceStartup-lastTime<0.3f)
            Debug.Log("double click!