【Unity】EventSystem.current.IsPointerOverGameObject()對碰撞體起作用

本來我是用?EventSystem.current.IsPointerOverGameObject()來檢測是否點擊在UI上的,但是發現,他對我的碰撞體也是返回ture,研究半天。。。。找不出問題,然后發現我的相機上掛載了PhysicsRaycaster,去掉之后就好了,至于為什么相機上掛載PhysicsRaycaster,好像是我的別的同事做的一個物體拖拽,用了?IDragHandler, IBeginDragHandler, IEndDragHandler,來做對3D物體的拖拽。。。我真的是無語。。。他的代碼是這樣的。。。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using QFramework;public class ObjDrag : MonoBehaviour, IDragHandler, IBeginDragHandler, IEndDragHandler
{private Vector3 ObjVector3 = Vector3.zero;public string deskTag = "desk";private Collider collider;/// <summary>/// isDrag等于false無法交互/// </summary>public bool isDrag = false;void Start(){collider = GetComponent<Collider>();}public void OnBeginDrag(PointerEventData eventData){ObjVector3 = this.transform.position;if (isDrag&&Input.GetMouseButton(0)){StringEventSystem.Global.Send<string>("Begin", eventData.pointerDrag.name);Debug.Log(eventData.pointerDrag.name);}}public void OnEndDrag(PointerEventData eventData){if (isDrag){this.transform.position = ObjVector3;StringEventSystem.Global.Send<string>("EndDrag", eventData.pointerDrag.name);Debug.Log(eventData.pointerDrag.name);}}/// <summary>/// 物體可拖拽/// </summary>/// <param name="eventData"></param>public void OnDrag(PointerEventData eventData){if (isDrag && Input.GetMouseButton(0)){Vector3 screenpos = Camera.main.WorldToScreenPoint(transform.position);Vector3 mouseScreenPos = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenpos.z);this.transform.position = Camera.main.ScreenToWorldPoint(mouseScreenPos);Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);var hits = Physics.RaycastAll(ray);foreach (var item in hits){if (item.collider != null && item.collider.tag == deskTag){var dis0 = Vector3.Distance(Camera.main.transform.position, item.point);var offset = collider.bounds.size.magnitude / 2;var dis1 = Vector3.Distance(Camera.main.transform.position, transform.position) + offset;if (dis1 > dis0){var precent = 1 - (offset / dis0);transform.position = Camera.main.transform.position + (item.point - Camera.main.transform.position) * precent;//transform.position = item.point;}//transform.position = item.point;break;}}}}}

然后必須在攝像機上掛載Unity UGUI的PhysicsRaycaster (物理射線檢測)

下面介紹一下:

PhysicsRaycaster

【Unity】 UGUI的PhysicsRaycaster (物理射線檢測)組件的介紹及使用-CSDN博客

IDragHandler, IBeginDragHandler, IEndDragHandler

【Unity】IBeginDragHandler、IDragHandler 和 IEndDragHandler 介紹-CSDN博客

問題就是他們都是用于UI 元素的,然后他用在了3D物體上,導致對我的3D物體起作用,如果一定要在相機上掛載PhysicsRaycaster,又要EventSystem.current.IsPointerOverGameObject只對你的UI 元素起作用,那么可以在這個組件上,用EventMask:指定哪些層的UI元素可以接收事件。比如你的模型是層級是

那么你就可以在EventMask上不勾選Model

?

這樣?EventSystem.current.IsPointerOverGameObject()就不會對你指定的模型碰撞體起作用了。。。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/163370.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/163370.shtml
英文地址,請注明出處:http://en.pswp.cn/news/163370.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Mapbox中點圖層和面圖層點擊事件重疊,禁止點擊穿透方案

使用mapbox的小伙伴們可能都遇到過這個問題,就是當地圖上有兩個圖層,一個面圖層一個點圖層,二者相重合的時候。假設我們想點擊點位彈窗展示一些內容,也想點擊面圖層的時候彈窗展示一些內容,這時候一個有意思的問題就產生了,就是點擊點位彈窗的時候面圖層對應的彈窗也會彈…

計算二叉樹雙分支節點的個數(可運行)

如果對您有用&#xff0c;點個贊&#xff0c;關注一下哦&#xff01;畢竟像我這種不用付monyY的博主不多了&#xff0c;且行且珍惜吧&#xff01;俺只想要數據【偷笑】 運行環境.cpp 如果沒有輸出結果一定是建樹錯誤&#xff01;&#xff01;&#xff01;&#xff01;&#x…

libbz2 for Mac OS makefile

git地址&#xff1a;git://sourceware.org/git/bzip2.git a文件Makefile # ------------------------------------------------------------------ # This file is part of bzip2/libbzip2, a program and library for # lossless, block-sorting data compression. # # bzip…

MySQL-01-MySQL基礎架構

1-MySQL邏輯結構 如果能在頭腦中構建一幅MySQL各組件之間如何協同工作的架構圖&#xff0c;有助于深入理解MySQL服務器。下圖展示了MySQL的邏輯架構圖。 MySQL邏輯架構整體分為三層&#xff0c;最上層為客戶端層&#xff0c;并非MySQL所獨有&#xff0c;諸如&#xff1a;連接處…

jar包打進本地倉庫

jar包打進本地倉庫 <dependency><groupId>com.test</groupId><artifactId>test-api</artifactId><version>1.0.0</version> </dependency>mvn install:install-file -Dfiletest.jar -DgroupIdcom.test -DartifactIdtest-api …

數據結構:鏈表

目錄 一.為什么要使用鏈表存儲數據&#xff1f; 二.鏈表的分類 單向或者雙向鏈表&#xff1a; 帶頭或者不帶頭&#xff1a; 循環或者非循環&#xff1a; 三.鏈表的實現 3.1無頭單向非循環鏈表的實現&#xff1a; 3.1.1單向無頭非循環鏈表的聲明 3.1.2動態申請一個節點 …

kmalloc

kmalloc(size(結構體)*n)就是申請n個大小為結構體的空間&#xff0c;然后返回一個指向這個空間的首地址的指針。這個指針可以看作是一個數組&#xff0c;它的每個元素都是結構體&#xff0c;所以可以使用索引來訪問這個空間的不同部分。例如&#xff0c;如果你有一個指針p&…

python數據類型之字符串、字典、元組

一、數字類型 1、number類型 Python Number 數據類型用于存儲數值。 數據類型是不允許改變的,這就意味著如果改變 Number 數據類型的值&#xff0c;將重新分配內存空間。 以下實例在變量賦值時 Number 對象將被創建&#xff1a; var1 1 var2 10也可以使用del語句刪除一些…

亞馬遜防關聯要注意什么?看這一篇,防關聯有技巧!

亞馬遜賬號關聯的問題&#xff0c;對于跨境電商來說都不陌生&#xff0c;店鋪的安全問題往往和賬號關聯有關&#xff0c;一旦亞馬遜賬號被關聯就很可能導致我們的店鋪被封&#xff0c;對于被亞馬遜封店的賣家都會有申訴機會&#xff0c;如果無法成功申訴&#xff0c;那將永久被…

C語言——利用函數遞歸,編寫函數不允許創建臨時變量,求字符串長度

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int my_strlen(char* str) {if(*str ! \0)return 1my_strlen(str1);elsereturn 0; }int main() {char arr[] "hello";int len my_strlen(arr); //arr是數組&#xff0c;數組傳參&#xff0c;傳過去的是第…

NB水表能承受最大的水壓是多少?

NB水表&#xff0c;作為新一代智能水表&#xff0c;以小巧的體積、穩定的性能和強大的功能贏得了市場的認可。那么&#xff0c;它究竟能承受多大的水壓呢&#xff1f;接下來&#xff0c;小編來為大家揭秘下&#xff0c;一起來看下吧&#xff01; 一、NB水表概述 NB水表&#xf…

安卓手機好用的清單軟件有哪些?

生活中每個人都有丟三落四的習慣&#xff0c;伴隨著生活節奏的加快&#xff0c;人們常忘事的情況會更加頻繁的出現&#xff0c;這時候很多人就開始選擇手機上記錄清單類的軟件&#xff0c;安卓手機在手機市場中占有很大的分量&#xff0c;在安卓手機上好用的記錄清單的軟件有哪…

在高斯DB數據庫中,獲取上個月的日期

個人網站 返回上個月的日期。ADD_MONTHS函數用于對日期進行加減操作&#xff0c;通過將當前日期減去1個月來獲取上個月的日期。請注意&#xff0c;這里使用的是負數來表示減去一個月的時間間隔。 SELECT ADD_MONTHS(CURRENT_DATE, -1) AS last_month;

SiP封裝、合封芯片和芯片合封是一種技術嗎?都是合封芯片技術?

合封芯片、芯片合封和SiP系統級封裝經常被提及的概念。但它們是三種不同的技術&#xff0c;還是同一種技術的不同稱呼&#xff1f;本文將幫助我們更好地理解它們的差異。 一、合封芯片與SiP系統級封裝的定義 首先合封芯片和芯片合封都是一個意思 合封芯片是一種將多個芯片&a…

力扣labuladong——一刷day49

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 前言一、力扣513. 找樹左下角的值二、力扣666. 路徑總和 IV三、力扣1261. 在受污染的二叉樹中查找元素四、力扣572. 另一棵樹的子樹 前言 二叉樹的遞歸分為「遍歷」…

【Leetcode每日一題】mid——6. N 字形變換

題目描述 https://leetcode.cn/problems/zigzag-conversion/description/ 將一個給定字符串 s 根據給定的行數 numRows &#xff0c;以從上往下、從左到右進行 Z 字形排列。 比如輸入字符串為 “PAYPALISHIRING” 行數為 3 時&#xff0c;排列如下&#xff1a; 之后&#xff0…

技術細分|推薦系統——推薦系統中的數據去偏方法

本篇的主要脈絡同樣依據中科大何向南教授、合工大汪萌教授聯合在 TKDE 上的一篇綜述文章展開&#xff1a;Bias and Debias in Recommender System: A Survey and Future Directions。 下面按照前導文章中介紹的數據偏差 Selection Bias、Conformity Bias、Exposure Bias、Posit…

PDF添加文字或者圖片

引入依賴 <dependency><groupId>org.apache.pdfbox</groupId><artifactId>fontbox</artifactId><version>2.0.4</version> </dependency> <dependency><groupId>org.apache.pdfbox</groupId><artifactI…

找JPG格式圖片的地址(持續更新中)

問題描述&#xff1a;找JPG格式圖片的地址 解決辦法&#xff1a; 第一個 谷歌的images 第二個&#xff0c;搜狗圖片和百度圖片 不過下載是WEBP格式&#xff0c;可以使用一個在線WEBP格式轉JPG格式的在線網站即可。 轉換的網址為&#xff1a; https://ezgif.com/webp-to-j…

【學歷是敲門磚】如果你想有個好的起點,不妨沖一沖計算機考研,這本書將會助你一臂之力

目錄 計算機考研難點 《計算機考研精煉1000題》揭秘問答 1. 為什么是1000題&#xff1f; 2. 有什么優勢&#xff1f; 3. 編寫團隊水平如何&#xff1f; 4. 題目及解析品質如何&#xff1f;可以試讀嗎&#xff1f; 購買鏈接 高質量的學習提升圈子 京東熱賣下單鏈接&…