///////////////2015/09/17///////////////////
//////////////by XBW////////////////////////
/////////////环境 unity4.6.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;关闭小脚印的显示,这样就好了,还是比较人性化的。
希望大家批评指正,谢谢啦,晚安了