unity实现鼠标点击位置小脚印标志

///////////////2015/09/17///////////////////

//////////////by XBW////////////////////////

/////////////环境 unity4.6.1/////////////

实现了这个无聊的功能,比较人性化了而已,看一下点击效果

unity实现鼠标点击位置小脚印标志_第1张图片

看到小脚印了吗,这个可不是鼠标的图案,这是每次点击后会在点击的位置上显示一个小脚印,只是比较好看而已,没什么别的用,放心,这个小脚印只停留0.2S就会消失;

怎么实现的呢,就是获取鼠标点击位置的坐标,可让我折腾半天,竟然不知道鼠标位置坐标的原点在屏幕左下角,而不是UI的左上角,不知道之前小脚印出现的位置总是不对,经过print输出坐标才看出猫腻,这样呢,x轴并没有变化,向右为正,而y轴变了,我们要把鼠标的以向上为正转换为UI的向下为正,这样呢,我们只需Screent.height-Input.mousePosition.y;这样显示就正常了;

下面说一下过程;

再上一节的代码的Update中这样添加

void Update () {
           
        if(Input .GetMouseButtonDown(0)==true)
        {
            sx =  Input.mousePosition.x;
            sy =  Input.mousePosition.y;
            kai5 = 0;
        }

        //for (var i = 0; i < Input.touchCount; ++i)
        //{
        //    if (Input.GetTouch(i).phase == TouchPhase.Began)
        //    {
        //        sx = Input.GetTouch(i).position.x;
        //        sy = Input.GetTouch(i).position.y;
        //        kai5 = 0;
        //    }
        //}
	
	}

至于这个触摸的我没有试验,

这个kai5就是显示小脚印的开关了;

然后在GUI中这样添加,一定要在GUI的最末端,否则小脚印会被遮挡住

if (kai5 == 0)
        {
            GUI.DrawTexture(new Rect(sx - Screen.width * 0.05f, Screen.height - sy - Screen.height * 0.05f, Screen.width * 0.1f, Screen.width * 0.1f), p11);
            StartCoroutine(WaitAndPrint(0.2F));
        }

我使用一个延时执行的代码;

StartCoroutine()函数,这个函数的定义如下

 IEnumerator WaitAndPrint(float waitTime)  
     {    
        yield return new WaitForSeconds(waitTime);
        kai5 = 1;
     }   


让小脚印停留0.2s然后kai5=1;关闭小脚印的显示,这样就好了,还是比较人性化的。

希望大家批评指正,谢谢啦,晚安了


你可能感兴趣的:(unity实现鼠标点击位置小脚印标志)