精华内容
下载资源
问答
  • 适用于Unity 3D初学者:如何在unity 3d中处理按钮点击事件
  • 此篇博客将通过两种方式实现场景中物体的点击事件。 准备工作: 1、给场景添加EventSystem:选择Hierarchy窗口-》Create-》UI-》Event System 2、给摄像机添加Physics Raycaster脚本(系统自带的):选中Main ...

    此篇博客将通过两种方式实现场景中物体的点击事件。

    准备工作:

    1、给场景添加EventSystem:选择Hierarchy窗口-》Create-》UI-》Event System

    2、给摄像机添加Physics Raycaster脚本(系统自带的):选中Main Camera-》Add Component-》Physics Raycaster

    3、给需要实现点击的物体添加Collider(Cube默认有Collider就不需要此步骤,如果是公司模型没有就需要添加)。

    点击事件的准备工作到此结束,接下通过两种方式实现点击事件

    方式一:实现接口IPointerClickHandler

    1、给需要点击的物体添加自己编写的脚本"TestClick.cs"

    脚本代码如下:

    public class TestClick : MonoBehaviour, IPointerClickHandler
    {
        private string TAG = "TestClick_";
    
        public void OnPointerClick(PointerEventData eventData)
        {
            Debug.Log(TAG + "Click Cube ");
    
        }
    }

     方式二:通过物体的名字或者Tag

    1、添加一个单独层挂载编写的脚本“ClickRayCastHitControl.cs”

          

    ClickRayCastHitControl脚本代码如下:

    using UnityEngine;
    
    public class ClickRayCastHitControl : MonoBehaviour
    {
        private string TAG = "ClickRayCastHitControl_";
        Ray ray;
        RaycastHit hit;
        GameObject obj;
    
        void Update()
        {
            if (Input.GetMouseButtonDown(0))
            {
                Debug.Log(TAG+"点击鼠标左键");
                ray = Camera.main.ScreenPointToRay(Input.mousePosition);
                if (Physics.Raycast(ray, out hit))
                {
                    Debug.Log(hit.collider.gameObject.name);
                    obj = hit.collider.gameObject;
                    Debug.Log(TAG+"点中: name = " + obj.name+ "点中: tag = " + obj.tag);
                    //通过名字
                    if (obj.name.Equals("Cube"))
                    {
                        Debug.Log("点中" + obj.name);
                    }
                    //通过标签
                    if (obj.tag == "CubeRed")
                    {
                        Debug.Log("点中" + obj.name);
                    }
                }
            }
        }
    }

    2、给物体添加tag,选中物体Cube点击Inspector中Tag选项,在下拉列表中选择所需要的tag,如果没有则点击“Add Tag..."创建一个新的tag

    创建tag:

    3、保存项目后运行,并在场景中用鼠标随意点击:

     

    展开全文
  • Unity3D UGUI 代码添加 点击事件

    千次阅读 2017-10-25 09:58:42
    Unity3D UGUI 代码添加 点击事件

    其中stateText 为Text 当然也可以是 Image 等等UGUI的 组件

    onTextClick 为方法的回调



                EventTrigger trigger        = stateText.gameObject.GetComponentEx<EventTrigger>();
                trigger.triggers            = new System.Collections.Generic.List<EventTrigger.Entry>();
    
                EventTrigger.Entry entry    = new EventTrigger.Entry();
                entry.eventID               = EventTriggerType.PointerClick;
                entry.callback              = new EventTrigger.TriggerEvent();
    
                entry.callback.AddListener(OnTextClick);
                trigger.triggers.Add(entry);


    展开全文
  • Unity3D物体添加点击事件脚本,Unity3D物体添加点击事件脚本。实测,真实可用
  • unity3d实现3D物体上的点击事件

    千次阅读 2017-10-10 10:33:04
    unity3d实现3D物体上的点击事件

    在update中检测

    首先要在摄像机中添加组件Physics Raycaster

    public void Update(){
    if(Input.getMouseButtonUp(0)){
    Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
    RaycastHit rayhit;
    if(Physics.Raycast(ray,out rayhit)){
    debug.log(rayhit.collider.gamaObject.name);
    
    }
    }


     

    展开全文
  • Unity3D 按钮绑定点击事件

    千次阅读 2019-07-02 11:15:08
    Unity3D的按钮添加事件有三种方式,假设我们场景中有一个Canvas对象,Canvas对象中有一个Button对象。 方式一: 创建脚本ClickObject.cs,然后将脚本添加到Canvas对象上,脚本如下: 1 using UnityEngine...

    为Unity3D的按钮添加事件有三种方式,假设我们场景中有一个Canvas对象,Canvas对象中有一个Button对象。

    方式一:

    创建脚本ClickObject.cs,然后将脚本添加到Canvas对象上,脚本如下:

    复制代码

    复制代码

     1 using UnityEngine;
     2 using System.Collections;
     3 using UnityEngine.UI;
     4 using UnityEngine.Events;
     5 
     6 public class ClickObject : MonoBehaviour
     7 {
     8     void Start ()
     9     {
    10         //获取按钮游戏对象
    11         GameObject btnObj = GameObject.Find ("Canvas/Button");
    12         //获取按钮脚本组件
    13         Button btn = (Button) btnObj.GetComponent<Button>();
    14         //添加点击侦听
    15         btn.onClick.AddListener (onClick);
    16     }
    17 
    18     void onClick ()
    19     {
    20         Debug.Log ("click!");
    21     }
    22 }

    复制代码

    复制代码

    方式二:

    脚本同样添加到Canvas对象上,如下:

    复制代码

    复制代码

     1 using UnityEngine;
     2 using System.Collections;
     3 using UnityEngine.UI;
     4 using UnityEngine.Events;
     5 
     6 public class ClickObject2 : MonoBehaviour
     7 {
     8     void Start ()
     9     {
    10         //获取按钮游戏对象
    11         GameObject btnObj = GameObject.Find ("Canvas/Button");
    12         //获取按钮脚本组件
    13         Button btn = (Button) btnObj.GetComponent<Button>();
    14         //添加点击侦听
    15         btn.onClick.AddListener (delegate() {
    16             onClick(btnObj);
    17         });
    18     }
    19     
    20     void onClick (GameObject obj)
    21     {
    22         Debug.Log ("click: " + obj.name);
    23     }
    24 }

    复制代码

    复制代码

    方式三:

    之前的方式都是使用代码添加,下面的这个方式则是直接在编辑器中进行操作:

    我们找到Button游戏对象,找到其Button代码组件,在组件最下方有一个“On Click ()”的区域,点击该区域的“+”号,可以添加一个触发项,触发项前面可以选择一个任意的游戏对象,当选择了游戏对象之后后面就可以选择该对象上的一个任意方法,选择好之后,当我们点击了该按钮对象之后就会调用到选择的游戏对象的制定方法。

    展开全文
  • unity3d实现模型点击事件

    千次阅读 2020-04-26 16:25:17
    实现3D物体上的点击事件 二,Statue_01: 首先要在Statue_01的Inspector中添加组件Physics Raycaster 创建脚本,拖拽到3D物品Statue_01的Inspector面板上: using System.Collections; using System....
  • Unity3D - 场景中3D物体添加鼠标点击事件 鼠标点击3D物体触发,Unity从本质上来说有两种:一种是通过事件(event)触发,一种是通过射线(ray)判断穿过的物体触发。这两种触发的原理是不同的,不论哪种触发都必须...
  • 1.物体zengjbox collider碰撞器 2.代码 using UnityEngine; using System.Collections; public class MemoryCard : MonoBehaviour { public void OnMouseDown(){ Debug.Log ("ssssssssssssss"...
  • Unity3D——模型点击事件

    千次阅读 2019-03-28 14:30:36
    有时需要对具有获取碰撞性质的对象获取点击事件,而Button只能在Canvas下使用,此时需要根据对象的Tag来获取,执行事件。 方法如下,其中命名的对象的Tag为“fish”。 void Update() { //获取点击的鱼 if ...
  • Unity3D_touch事件和点击事件

    千次阅读 2017-09-13 12:36:32
    现在要实现鼠标点击在哪个位置,物体就朝向哪里运动。 所以是将两个部分融合到一起:1,物体的运动;2,鼠标的点击。 if (Input.GetMouseButtonDown (0)) { //0在PC上表示鼠标的左键,在手机上表示落下的第一个...
  • 先来看下效果图,图中点击 Cube(EventDispatcher),Sphere(EventListener)以及 Capsule(EventListener)会做出相应的变化,例子中的对象相互之间没有引用,也没有父子关系。 Demo 事件触发者...
  • Unity3D 鼠标双击事件

    2020-10-21 14:31:47
    Unity3D 鼠标双击事件 Unity3D 鼠标双击事件总结了几种,特来记录一下! 一、计时Time.realtimeSinceStartup,从开始运行到首次点击的时间、跟、开始运行到下一次点击的时间、的时间差。 private float time; ...
  • Unity3D为3D物体添加点击事件

    千次阅读 2018-10-18 17:05:09
    //为3D物体添加点击事件 for (int i = 0; i ; i++) { AddObjectClickEvent(cube1[i]); } } public void AddObjectClickEvent(GameObject itemObject) { var box = itemObject.GetComponent(); if (box == ...
  • Unity模型点击事件

    热门讨论 2021-05-08 09:45:27
    模型点击事件监听 触发模型点击事件的必要条件 需要触发模型点击事件的模型身上必须要挂载Collider组件 方法一 通过OnMouseDown函数监听(只能在PC端有效) 1.在Hierarchy面板中右键,点击3D Object->Cube...
  • Unity3D脚本中,有几个Unity3D自带的事件函数按照预定的顺序执行作为脚本执行。其执行顺序如下: 编辑器(Editor) Reset:Reset函数被调用来初始化脚本属性当脚本第一次被附到对象上,并且在Reset命令被...
  • https://jingyan.baidu.com/article/af9f5a2d7fdb6443150a4571.html
  • Unity3D中脚本的生命周期是依照预先定义好的事件函数的运行流程来演化的,详细流程例如以下: Editor模式下Reset: 当脚本第一次被挂到GameObject上或用户点击Resetbutton时,Reset被调用初始化脚本属性,最经常...
  • Unity3D中Button的按钮点击事件

    万次阅读 2017-09-15 19:27:40
    Unity UGUI 按钮绑定事件的方式多种,下面介绍几种比较常见的。对于其中4种,该博客里面介绍的比较清楚,可以进行参照,原博客地址:http://www.cnblogs.com/isayes/p/6370168.html 下面我
  • unity3D 点击按钮 播放音频

    千次阅读 2018-10-27 10:34:42
    unity3d—&gt;Asset,会看到处理后的音频文件。在模型上添加Audio Source组件,在相机上添加Audio Listener组件。(具体步骤百度) 2、在按钮点击响应事件中写入相应的动作 using UnityEngine; using ...
  • Unity3D鼠标点击物体产生事件

    千次阅读 2016-09-19 22:20:00
    如果需要处理鼠标点击物体的情况, 可以当数据接触物体时,鼠标手势改变,然后点击后和NPC产生对话等: using UnityEngine; using System.Collections; public class example : MonoBehaviour { void ...
  • Unity3D开发之NGUI点击事件穿透响应处理 2013年03月19日⁄ 综合⁄ 共 300字 ⁄ 字号小中大⁄评论关闭 在使用NGUI 开发2D项目的时候,发现了一个问题,就是如果点出一个菜单,然后点击菜单上面的按钮的...
  • Unity3D物体添加点击事件脚本

    万次阅读 2018-03-14 18:54:23
    本段主要是为了学习记录,在Unity中怎么给一个BoxCollider添加事件脚本,以点击事件为例,并且,添加物体事件一些必要的前提。 首先是射线检测部分,如下类 AddEeventMonoTest.cs, 其中初始化阶段准备了 必要的一些...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 384
精华内容 153
关键字:

unity3d点击事件