精华内容
下载资源
问答
  • unity 鼠标点击在2D 物体上 和UI上 1.鼠标是否点击在2D 物体上 /// <summary> /// 点击屏幕坐标 /// </summary> /// <param name="position"></param> /// <returns></...

    unity 鼠标点击在2D 物体上 和UI上

    1.鼠标是否点击在2D 物体上

            /// <summary>
            /// 点击屏幕坐标
            /// </summary>
            /// <param name="position"></param>
            /// <returns></returns>
            public bool IsClickOn2DEntity(Vector2 position)
            {
                RaycastHit2D hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero);
    
                if (hit.collider != null && hit.collider.name==ZumaBgCircleBgName)
                {
                    Debug.Log("Target" + hit.collider.name);
          
                    return true;
                }
                return false;
            }
    

    2.鼠标点击在UI上

    
            /// <summary>
            /// 获取鼠标停留处UI
            /// </summary>
            /// <param name="canvas"></param>
            /// <returns></returns>
            public bool IsClickOverUI(GameObject canvas)
            {
                PointerEventData pointerEventData = new PointerEventData(EventSystem.current);
                pointerEventData.position = Input.mousePosition;
                GraphicRaycaster gr = canvas.GetComponent<GraphicRaycaster>();
                List<RaycastResult> results = new List<RaycastResult>();
                gr.Raycast(pointerEventData, results);
                if (results.Count != 0)
                {
                 //   Debug.Log(results[0].gameObject.name);
                    return true;
                }
    
                return false;
            }
    
    展开全文
  • Unity 鼠标点击事件

    千次阅读 2020-07-24 16:47:24
    鼠标事件 鼠标事件,都是当鼠标和GUI或者碰撞体(Collider)交互的时候触发的。 需要注意的是,drag 其实就是鼠标 Down 后到 Up 之前持续每帧都会发送此消息。 常见的鼠标事件: OnMouseDown:当鼠标上的按钮被按下...

    鼠标事件
    鼠标事件,都是当鼠标和GUI或者碰撞体(Collider)交互的时候触发的。
    需要注意的是,drag 其实就是鼠标 Down 后到 Up 之前持续每帧都会发送此消息。
    常见的鼠标事件:
    OnMouseDown:当鼠标上的按钮被按下时触发的事件
    OnMouseDrag:当用户鼠标拖拽GUI元素或碰撞体时调用
    OnMouseEnter:当鼠标进入物体范围时被调用
    OnMouseExit:当鼠标退出时被调用
    OnMouseOver:当鼠标移动到某对象的上方时触发的事件
    OnMouseUp:当鼠标按键被松开时触发的事件
    按下事件:Input.GetMouseButtonDown()
    当鼠标某一个按键按下时,便会返回 True,但是即使玩家一直按着鼠标按键,也仅仅只会返回一次 True。

    void Update()
        {
            if (Input.GetMouseButtonDown(0))
            {
                print("鼠标左键被按下!");
            }
            if (Input.GetMouseButtonDown(1))
            {
                print("鼠标右键被按下!");
            }
            if (Input.GetMouseButtonDown(2))
            {
                print("鼠标中键被按下!");
            }
            if (Input.GetMouseButtonDown(3))
            {
                print("鼠标侧键被按下!");
            }
        }
    

    这个方法只有一个参数,其中:0 表示鼠标左键,1表示鼠标右键,2表示鼠标中键,3和4分别表示鼠标的两个侧键。

    触发结果:
    在这里插入图片描述
    抬起事件:Input.GetMouseButtonUp()

    void Update()
        {
            if (Input.GetMouseButtonUp(0))
            {
                print("鼠标左键抬起!");
            }
            if (Input.GetMouseButtonUp(1))
            {
                print("鼠标右键抬起!");
            }
            if (Input.GetMouseButtonUp(2))
            {
                print("鼠标中键抬起!");
            }
            if (Input.GetMouseButtonUp(3))
            {
                print("鼠标侧键抬起!");
            }
        }
    

    与按下事件相同,也只有一个参数,其中:0 表示鼠标左键,1表示鼠标右键,2表示鼠标中键,3和4分别表示鼠标的两个侧键。

    触发结果
     在这里插入图片描述
    长按事件:Input.GetMouseButton()
    检测鼠标按键中某个按键一直按下的状态或者是获得按下的按键,如果一直按着鼠标按键,便会多次返回 True。

    private float timer = 0;
    
        void Update()
        {
            if (Input.GetMouseButton(0))
            {
                timer += Time.deltaTime;
            }
            else if (Input.GetMouseButtonUp(0) && timer != 0)
            {
                print("鼠标左键长按" + timer + "秒!");
                timer = 0;
            }
            if (Input.GetMouseButton(1))
            {
                timer += Time.deltaTime;
            }
            else if (Input.GetMouseButtonUp(1) && timer != 0)
            {
                print("鼠标右键长按" + timer + "秒!");
                timer = 0;
            }
        }
    

    和之前的两个事件一样,只有一个参数,其中:0 表示鼠标左键,1表示鼠标右键,2表示鼠标中键,3和4分别表示鼠标的两个侧键。

    触发结果:
    在这里插入图片描述

    展开全文
  • Unity给3D物体添加点击事件脚本,Unity给3D物体添加点击事件脚本。实测,真实可用
  • 烘焙场景 角色挂载寻路组件 编写脚本 角色上挂载脚本 鼠标点击烘焙的路面可以寻路啦!

    烘焙场景
    在这里插入图片描述
    角色挂载寻路组件
    在这里插入图片描述

    编写脚本

    在这里插入图片描述
    在这里插入图片描述
    角色上挂载脚本

    在这里插入图片描述
    鼠标点击烘焙的路面可以寻路啦!

    展开全文
  • Unity使用Shader实现点击屏幕出现水波纹特效,代码带注释,内附使用教程,简单的一批~
  • Unity鼠标点击Collider

    2017-09-13 12:24:00
    获得点击的物体 if (selectedGmObj.name.Contains( " Face " )) { Debug.Log( " Face " ); } else if (selectedGmObj.name.Contains( " Hair " )) { Debug.Log( " Hair " ); } else if ...
    void OnGUI()
        {
            if (Event.current != null && Event.current.type == EventType.mouseDown)
            {
                if (Input.GetMouseButton(0))
                {
                    Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
                    RaycastHit hit;
                    if (Physics.Raycast(ray, out hit))
                    {
                        GameObject selectedGmObj = hit.collider.gameObject; //获得点击的物体
                        if(selectedGmObj.name.Contains("Face"))
                        {
                            Debug.Log("Face");
                        }
                        else if (selectedGmObj.name.Contains("Hair"))
                        {
                            Debug.Log("Hair");
                        }
                        else if (selectedGmObj.name.Contains("Clothes"))
                        {
                            Debug.Log("Clothes");
                        }
                        else if (selectedGmObj.name.Contains("Accessory"))
                        {
                            Debug.Log("Accessory");
                        }
                    }
                }
            }
        }

     

    转载于:https://www.cnblogs.com/coolbear/p/7514296.html

    展开全文
  • unity鼠标点击处生成UI

    2021-03-09 15:10:54
    游戏开发中有时要实现这样的效果,在屏幕点击地方生成UI 此时需要用到这个函数 public static bool ScreenPointToLocalPointInRectangle(RectTransform rect, Vector2 screenPoint, Camera cam, out Vector2 local...
  • 像 很多游戏 ,点击 目的地 ,就会在目的地 生成一个 特效 ,让玩家能够 明白自己点击的地方是哪里。 怎么做呢。Unity 的官方 标准 示例 或许可以解决 这个问题。 在Unity 的安装中,勾选 如下图所示的2个 ...
  • Unity鼠标点击射线的检测

    千次阅读 2019-01-02 17:31:07
    print("鼠标点击了屏幕"); } } } 让相机围绕着原点运动,鼠标点击发出摄像  用沿圆周围看着O绕旋转运动的函数camera.RotateAround(o.transform.position,Vector3.up,Time.deltaTime);
  • 1.通过射线检测,判断点击的是地板还是敌人或是己方队友 2.移动,若是敌人就判断是否在攻击距离内,若不在就移动到攻击距离,然后开始攻击,若果队友或者是地板就直接移动到 目标点 3.目标点与自身的位置关系,是否...
  • unity鼠标点击获取目标物体的属性

    千次阅读 2017-04-21 17:51:58
    如果需要鼠标点击获取目标物体的一些属性,就绪要用到unity中的射线 假设一种情景,单击鼠标左键,获取指针点击的目标物体属性 //创建射线变量 Ray ray = Camera.main.ScreenPointToRay(Input.mouseposition) //...
  • unity鼠标点击触发粒子效果和音效

    千次阅读 2020-06-24 14:38:22
    using System; using System.Collections; using System.Collections.Generic; using UnityEngine; public class Effect_Control : MonoBehaviour ... // Start is called before the first frame update ...
  • Unity 鼠标点击屏幕创建物体

    千次阅读 2013-07-13 16:40:09
    //按下鼠标左键时响应该方法 if(Input.GetMouseButtonDown(0)) { //创建一条射线一摄像机为原点 Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; //射线碰撞到...
  • //鼠标点击按钮事件 Open = GameObject.Find("Open").GetComponent(); Open.onClick.AddListener(OnClick); } // Update is called once per frame void Update() { } //读取文件事件 public static ...
  • 有些移动端不支持触点,但是可以使用方向键的,这时候有些除了要支持方向键操作外,按钮的选择等也需要进行更改,维持,经过无数实验,最终定了一个比较方便使用,尽量少的更改源代码和原本架构的基础上的控制器 ...
  • Unity鼠标点击地面控制人物移动

    千次阅读 2017-02-25 20:52:22
    using UnityEngine; using System.Collections; public class Player : MonoBehaviour { static public Player instance; NavMeshAgent agent;... Transform transCurrentEnemy = null;... Animator ani
  • 第一步:创建一个Cube和新的脚本命名能够为PropertiesAndCoroutines,并将脚本挂在到Cube上 PropertiesAndCoroutines脚本如下: using System.Collections; using System.Collections.Generic;...
  •  //创建一条相机发出的射线到鼠标移动到的位置  Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);  //射线命中的点  RaycastHit Hit;  //如果检测到碰撞  if (Physics.Raycast(ray,out Hit))  ...
  • unity3d中的屏幕坐标系 是以 屏幕 左下角为(0,0)点 右上角为(Screen.Width,Screen.Height)鼠标位置坐标与屏幕坐标系一致视口坐标是以摄像机为准 以屏幕的左下角为(0,0)点 右上角为(1,1)点绘制GUI界面时使用的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,424
精华内容 569
关键字:

unity鼠标点击