Unity3D物体点击事件实现方式

2023-05-16

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

准备工作:
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、保存项目后运行,并在场景中用鼠标随意点击:


————————————————
版权声明:本文为CSDN博主「NeverGiveUp!!」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/YeYaLing123/article/details/114385359

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unity3D物体点击事件实现方式 的相关文章

随机推荐

  • Ubuntu安装Fcitx以及Fcitx输入中文不显示候选词框的解决办法

    一 安装Fcitx 1 安装Fcitx所需组件 sudo apt install fcitx fcitx span class hljs attribute tools span fcitx span class hljs attribut
  • Linux系统快照一键备份恢复、不同机器恢复、增量备份恢复

    Linux系统快照一键备份恢复 不同机器恢复 增量备份恢复 前言 由于前段时间在做一个自动化部署开发环境的项目需要重复安装多种服务以及中间件 xff0c 但是生产环境的服务器不像自己的虚拟机可以使用快照 xff0c 如果直接操作会导致每次测
  • NSFileManager的常用操作

    1 删除文件 NSFileManager fn 61 NSFileManager defaultManager fn removeItemAtPath filePath error nil 判断文件是否存在 if NSFileManager
  • 数据压缩 —— 一种基于LZ4算法的硬件加速的快速无损压缩

    文章目录 背景LZ4 分析令牌 xff08 Token xff09 字面量长度 xff08 Literal Length xff09 偏移量 xff08 Offset xff09 匹配长度 xff08 Match Length xff09
  • Spring AOP 是什么?

    声明 xff1a 请勿直接抄袭 xff0c 翻译不易 xff0c 转载请注明 https blog csdn net Big Rotor article details 88765984 xff0c 谢谢 文章目录 什么是面向切面编程使用
  • Hazel引擎安装踩坑

    git地址 GitHub TheCherno Hazel Hazel Engine 安装vulkan sdk LunarXchange 修改系统变量 把py的变量放在商店上面 错误 MSB8020 无法找到 v143 的生成工具 平台工具集
  • Linux 环境下编译 freeRDP

    RDP xff1a 远程桌面协议 xff08 Remote Desktop Protocol xff09 xff0c 是一个多通道的协议 xff0c 可以让客户端或称 本地电脑 连上提供微软终端机服务的电脑 xff08 服务器端或称 远程电
  • 第十一节:元组 Tuple3

    创建元组 span class hljs title scala span gt val t 61 span class hljs number 1 span span class hljs string 34 hello 34 span
  • window下rust的安装

    删除rustup重装 环境变量配置 xff1a 通过RUST HOME指定rustup的安装目录 通过CARGO HOME指定cargo的安装过目录 再次运行rustup init文件 观察到安装界面的rustup路径和和cargo已经发生
  • Vue中如何使用websocket

    1新建文件夹 socket js 目录自己看着办 可以放lib或者utils import Vue from 39 vue 39 const ReconnectingWebSocket 61 require 39 64 api webSoc
  • Unity 场景鼠标移动、旋转

    using System Collections using System Collections Generic using UnityEngine public class CameraMove MonoBehaviour privat
  • unity 相机鼠标控制移动旋转缩放

    using System using System Collections using System Collections Generic using UnityEngine public class CameraCtrl02 MonoB
  • vr全景图如何制作?vr制作用什么软件?(详细教程)

    一 vr制作用什么软件 xff1f 1 图片处理软件 Photoshop xff08 PS xff09 全称叫Adobe Photoshop Photoshop主要处理以像素所构成的数字图像 使用其众多的编修与绘图工具 xff0c 能够有效
  • OpenGL 实现大眼和瘦脸

    借鉴博客 xff1a iOS原生框架Vision实现瘦脸大眼特效 仿抖音特效相机之大眼瘦脸 本文达成效果如下图 xff1a 效果图 106个特征点如下图 特征点 原理解析 主要是以下3点 xff0c 具体请前往参考博客和原理解析 1 圆内放
  • Unity c#脚本更换物体材质球

    using UnityEngine public class TestMaterial MonoBehaviour public Material test M public Material test B void Update if I
  • 史上最全的 Java 高质量博客与网站推荐(国内篇)

    阅读文本大概需要 6 66 分钟 前言 我最近在系统整理一些 Java 后台方面的面试题和参考答案 xff0c 有找工作需求的童鞋 xff0c 欢迎关注我的 Github 仓库 xff0c 如果觉得不错可以点个 star 关注 xff1a
  • unity 打包webGL本地打不开,就算配置了iis设置了浏览器还是打不开的解决方法。

    我打包了unity的webgl但是浏览器打不开 xff0c 于是下载了火狐根据网上的相关教程 xff0c 这里有一篇比较好的 xff1a 火狐浏览器Firefox在本地打开Unity3D开发的webGL的项目 知乎 zhihu com xf
  • Unity WebGL打包后怎么运行(火狐配置)

    打包后出现以下 xff1a 其中两个文件夹都是项目资源 xff0c 只有index html才是打开Web运行的页面 使用火狐浏览器 Firefox浏览器 Firefox的用户请在浏览器的地址栏输入 about config xff0c 回
  • 720全景图在线下载

    简单的下载全景图的网站 全景管家 第一步 需要打开全景管家 xff1a https krpano scenegram cn 把合适的全景项目的链接复制到输入框中 xff0c 点击箭头进行搜索 第二步 点击 解析全景图 按钮进行解析 xff0
  • Unity3D物体点击事件实现方式

    此篇博客将通过两种方式实现场景中物体的点击事件 准备工作 xff1a 1 给场景添加EventSystem xff1a 选择Hierarchy窗口 Create UI Event System 2 给摄像机添加Physics Raycast