• unity 实现多个物体或单个物体 让其单击物体让其显示再次单击让其隐藏


    unity 实现单击物体让其显示或隐藏,再次单击显示或隐藏

    using System.Collections;
    using System.Collections.Generic;
    using Unity.Burst.CompilerServices;
    using UnityEngine;
    using UnityEngine.EventSystems;

    public class ToggleObjects : MonoBehaviour
    {
    //private float tapThreshold = 0.25f;
    //private float tapTimer = 0.0f;
    //private bool tap = false;
    //private void Update()
    //{
    // if (Input.GetMouseButtonDown(0))
    // {
    // if (Time.time < this.tapTimer + this.tapThreshold)
    // {
    // RaycastHit hit;
    // Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); // 创建射线从相机指向鼠标点击位置
    // if (Physics.Raycast(ray, out hit)) // 如果射线击中了物体
    // {
    // GameObject clickedObject = hit.transform.gameObject; // 获取被点击的物体
    // if (clickedObject == this.gameObject) // 如果是当前物体被点击
    // {
    // Debug.Log(“双击”);
    // this.tap = false;
    // return;
    // }
    // }

    //        }
    //        this.tap = true;
    //        this.tapTimer = Time.time;
    //    }
    //    if (this.tap == true && Time.time > this.tapTimer + this.tapThreshold)
    //    {
    //        RaycastHit hit;
    //        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); // 创建射线从相机指向鼠标点击位置
    //        if (Physics.Raycast(ray, out hit)) // 如果射线击中了物体
    //        {
    //            GameObject clickedObject = hit.transform.gameObject; // 获取被点击的物体
    //            if (clickedObject == this.gameObject) // 如果是当前物体被点击
    //            {
    //                this.tap = false;
    //                Debug.Log("单击");
    //                return;
    //            }
    //        }
    //    }
    //}
    private float lastClickTime = 0f;
    private float doubleClickThreshold = 0.5f;
    private bool isVisible = true;
    private bool isVisible1 = true;
    
    void Start()
    {
    
    }
    
    void Update()
    {
        // 检测鼠标左键的点击事件
        if (Input.GetMouseButtonDown(0))
        {
            RaycastHit hit;
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); // 创建射线从相机指向鼠标点击位置
    
            if (Physics.Raycast(ray, out hit)) // 如果射线击中了物体
            {
                GameObject clickedObject = hit.transform.gameObject; // 获取被点击的物体
                if (clickedObject.name == "Cube") // 如果是当前物体被点击
                {
                    isVisible = !isVisible; // 切换可见性状态
                    //toggleRenderer(isVisible); // 根据可见性状态切换MeshRenderer的显示或隐藏
                    if(isVisible==true)
                    {
                        Debug.Log("true:Cube打开");
                    }
                    else
                    {
                        Debug.Log("false:Cube关闭");
                    }
                    
                }
                if (clickedObject.name == "Cube1") // 如果是当前物体被点击
                {
                    isVisible1 = !isVisible1; // 切换可见性状态
                    //toggleRenderer(isVisible); // 根据可见性状态切换MeshRenderer的显示或隐藏
                    if (isVisible1 == true)
                    {
                        Debug.Log("true:Cube1打开");
                    }
                    else
                    {
                        Debug.Log("false:Cube1关闭");
                    }
    
                }
            }
        }
    }
    
    private void toggleRenderer(bool visible)
    {
        MeshRenderer renderer = GetComponent(); // 获取物体的MeshRenderer组件
        if (renderer != null)
        {
            renderer.enabled = visible; // 根据可见性状态设置MeshRenderer的启用或禁用
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81

    }

  • 相关阅读:
    静态变量及静态方法讲解
    2022年武汉市智能制造试点示范行动奖励补贴政策以及申报条件要求汇总!
    Git零基础入门(Linux版)
    asp.net闲置物品购物网系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio
    【每日一题】找到字符串中所有字母异位词
    Spring IOC容器与 Bean 管理 第3关:Bean 标签中的 scope 属性
    金仓数据库 MySQL 至 KingbaseES 迁移最佳实践(3. MySQL 数据库移植实战)
    51. N 皇后
    SAS学习5(复习一些基本的统计学概念、sas中关于统计函数的一些语句)
    深度学习网络模型——DenseNet模型详解与代码复现
  • 原文地址:https://blog.csdn.net/weixin_44919646/article/details/132875805