当前位置: 首页 > news >正文

佛山网站哪家最专业网络推广的手段

佛山网站哪家最专业,网络推广的手段,wordpress的图片用cdn,福建中兴建设有限公司网站本来我是用 EventSystem.current.IsPointerOverGameObject()来检测是否点击在UI上的,但是发现,他对我的碰撞体也是返回ture,研究半天。。。。找不出问题,然后发现我的相机上挂载了PhysicsRaycaster,去掉之后就好了,至于…

本来我是用 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.shuangfujiaoyu.com/news/28221.html

相关文章:

  • 手机 网站 分辨率网页设计代做
  • 做网站游戏推广赚钱吗谷歌浏览器安卓版
  • wordpress建站教程视频seo优化软件大全
  • 云凡济南网站建设开发昆明seo网站建设
  • 上海网站建设免seo网络推广报价
  • 快站优惠券百度快照是什么意思?
  • 建设工程信息在什么网站发布计算机培训班有用吗
  • 邯郸信息港求职信息手机优化大师官网
  • 成都网站建设价格免费站推广网站不用下载
  • 网站建设 银川网站怎么进入
  • 帝国系统做企业网站百度快照怎么没有了
  • 阳江市做网站的公司郑州网站推广哪家专业
  • 上海 餐饮网站建设 会员系统网络平台推广方式
  • 连云港做网站西安关键词排名优化
  • 那里做网站比较好有哪些平台可以发布推广信息
  • cpanel转移网站成都百度推广优化创意
  • 青岛做外贸网站建设seo主要优化
  • 建站快车管理专业网站优化
  • 杭州模板网站建设网站建设找哪家好
  • 做公司网站需要了解哪些东西百家号官网
  • 武汉手机网站建设信息搜索大全引擎入口网站
  • 网站设置怎么调营销策划与运营公司
  • 蚌埠集团网站建设矿泉水软文广告500字
  • 关于网站建设的申请报告潮州seo
  • 河池市建设与规划委员会网站登封网络推广公司
  • 佛山网站seo推广沧州公司电话
  • 江西网站建设平台淘宝seo培训
  • 南宁网络推广建站搜一搜
  • 如何形容一个网站做的好游戏推广公司怎么接游戏的
  • 外贸网站建设免费苏州企业网站关键词优化