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

成都旅游网站建设地址有没有可以代理推广的平台

成都旅游网站建设地址,有没有可以代理推广的平台,网站设计需求分析报告,办公室装修设计费标准项目工程#xff1a;unity模型显示在UI上并交互#xff08;点击、旋转、缩放#xff09;资源-CSDN文库 1.在Assets创建 Render Texture#xff08;下面会用到#xff09;#xff0c;根据需要设置Size 2.创建UIRawImage#xff0c;并把Render Texture赋上 3.创建相机unity模型显示在UI上并交互点击、旋转、缩放资源-CSDN文库 1.在Assets创建 Render Texture下面会用到根据需要设置Size 2.创建UIRawImage并把Render Texture赋上 3.创建相机如下图 4.基本UI的准备工作完成剩下的就是代码了值得一提相机我不喜欢单独拿出去管理就和UI一起就好。如图 5.相机控制直接上代码添加了一个判断鼠标必须在rawImage上其他UI上无效 /**********************************************************************文件信息文件名(File Name): CameraController.cs作者(Author): TianWenQuan创建时间(CreateTime): #CREATETIME#Unity版本(UnityVersion) #UNITYVERSION#项目**********************************************************************/ using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.EventSystems; namespace Twq {/// summary/// 该脚本需要挂在摄像机上/// /summarypublic class CameraController : MonoBehaviour{public Transform targetObject;public Vector3 targetOffset;public float averageDistance 5.0f;//初始位置 镜头远近public float maxDistance 20;public float minDistance .6f;public float xSpeed 200.0f;public float ySpeed 200.0f;public int yMinLimit -80;public int yMaxLimit 80;public int xMinLimit -80;public int xMaxLimit 80;public int zoomSpeed 40;public float panSpeed 0.3f;public float zoomDampening 5.0f;public float rotateOnOff 1;private float xDeg 0.0f;private float yDeg 0.0f;private float currentDistance;private float desiredDistance;private Quaternion currentRotation;private Quaternion desiredRotation;private Quaternion rotation;private Vector3 position;private float idleTimer 0.0f;private float idleSmooth 0.0f;void Start() { Init(); }void OnEnable() { Init(); }public void Init(){tt();}public void tt(){if (!targetObject){GameObject go new GameObject(Cam Target);go.transform.position transform.position (transform.forward * averageDistance);targetObject go.transform;}currentDistance averageDistance;desiredDistance averageDistance;position transform.position;rotation transform.rotation;currentRotation transform.rotation;desiredRotation transform.rotation;xDeg Vector3.Angle(Vector3.right, transform.right);yDeg Vector3.Angle(Vector3.up, transform.up);position targetObject.position - (rotation * Vector3.forward * currentDistance targetOffset);}void LateUpdate(){if (IsPointerOverGameObject(Input.mousePosition)){if (Input.GetMouseButton(2) Input.GetKey(KeyCode.LeftAlt) Input.GetKey(KeyCode.LeftControl)){desiredDistance - Input.GetAxis(Mouse Y) * 0.02f * zoomSpeed * 0.125f * Mathf.Abs(desiredDistance);}else if (Input.GetMouseButton(0)){xDeg Input.GetAxis(Mouse X) * xSpeed * 0.02f;yDeg - Input.GetAxis(Mouse Y) * ySpeed * 0.02f;yDeg ClampAngle(yDeg, yMinLimit, yMaxLimit);xDeg ClampAngle(xDeg, xMinLimit, xMaxLimit);desiredRotation Quaternion.Euler(yDeg, xDeg, 0);currentRotation transform.rotation;rotation Quaternion.Lerp(currentRotation, desiredRotation, 0.02f * zoomDampening);transform.rotation rotation;idleTimer 0;idleSmooth 0;}else{//自动旋转//idleTimer 0.02f;//if (idleTimer rotateOnOff rotateOnOff 0)//{// idleSmooth (0.02f idleSmooth) * 0.005f;// idleSmooth Mathf.Clamp(idleSmooth, 0, 1);// xDeg xSpeed * 0.001f * idleSmooth;//}//yDeg ClampAngle(yDeg, yMinLimit, yMaxLimit);//desiredRotation Quaternion.Euler(yDeg, xDeg, 0);//currentRotation transform.rotation;//rotation Quaternion.Lerp(currentRotation, desiredRotation, 0.02f * zoomDampening * 2);//transform.rotation rotation;}desiredDistance - Input.GetAxis(Mouse ScrollWheel) * 0.02f * zoomSpeed * Mathf.Abs(desiredDistance);desiredDistance Mathf.Clamp(desiredDistance, minDistance, maxDistance);currentDistance Mathf.Lerp(currentDistance, desiredDistance, 0.02f * zoomDampening);position targetObject.position - (rotation * Vector3.forward * currentDistance targetOffset);transform.position position;}}private static float ClampAngle(float angle, float min, float max){if (angle -360)angle 360;if (angle 360)angle - 360;return Mathf.Clamp(angle, min, max);}/// summary/// 检测是否点击UI/// /summary/// param namemousePosition鼠标位置/param/// returns/returnsprivate bool IsPointerOverGameObject(Vector2 mousePosition){//创建一个点击事件PointerEventData eventData new PointerEventData(EventSystem.current);eventData.position mousePosition;ListRaycastResult raycastResults new ListRaycastResult();//向点击位置发射一条射线检测是否点击UIEventSystem.current.RaycastAll(eventData, raycastResults);if (raycastResults.Count 0){// Debug.Log(raycastResults[0].gameObject.name raycastResults[0].gameObject.name);if (raycastResults[0].gameObject.name RawImage)//判断是否 是 自己要点击的UI{return true;}else{return false;}}else{return false;}}/// summary/// 获取鼠标停留处UI/// /summary/// param namecanvas/param/// returns/returnspublic string GetOverUI(GameObject canvas){PointerEventData pointerEventData new PointerEventData(EventSystem.current);pointerEventData.position Input.mousePosition;GraphicRaycaster gr canvas.GetComponentGraphicRaycaster();ListRaycastResult results new ListRaycastResult();gr.Raycast(pointerEventData, results);if (results.Count ! 0){Debug.Log();return results[0].gameObject.name;}return null;}} } 6.鼠标点击 模型 触发事件 using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI;namespace App.UI.Event {public class RaycastFromMouse : MonoBehaviour, IPointerClickHandler, IPointerDownHandler, IPointerUpHandler, IDragHandler, IBeginDragHandler, IEndDragHandler{public Camera renderCamera;public RawImage rawImage;public void OnPointerClick(PointerEventData eventData){// 获取鼠标点击位置Vector2 clickPosition eventData.position;// 将屏幕坐标转换为 RawImage 的本地坐标Vector2 localPoint;RectTransformUtility.ScreenPointToLocalPointInRectangle(rawImage.rectTransform, clickPosition, eventData.pressEventCamera, out localPoint);// 将 RawImage 的本地坐标映射到 RenderTexture 的分辨率范围内Rect rect rawImage.rectTransform.rect;Vector2 normalizedPoint new Vector2((localPoint.x - rect.x) / rect.width, (localPoint.y - rect.y) / rect.height);// 将转换后的坐标转换为射线Ray ray renderCamera.ViewportPointToRay(normalizedPoint);// 发射射线检测是否与3D模型交互RaycastHit hit;if (Physics.Raycast(ray, out hit)){// 获取物体上的 EventTrigger 组件EventTrigger eventTrigger hit.collider.gameObject.GetComponentEventTrigger();// 如果组件存在触发 Pointer Click 事件if (eventTrigger ! null){ExecuteEvents.Execute(eventTrigger.gameObject, eventData, ExecuteEvents.pointerClickHandler);}}}private GameObject selectedObject;public void OnPointerDown(PointerEventData eventData){RaycastHit hit;if (RaycastToRenderTexture(eventData, out hit)){EventTrigger eventTrigger hit.collider.gameObject.GetComponentEventTrigger();if (eventTrigger ! null){ExecuteEvents.Execute(eventTrigger.gameObject, eventData, ExecuteEvents.pointerDownHandler);selectedObject eventTrigger.gameObject;}}}public void OnPointerUp(PointerEventData eventData){if (selectedObject ! null){EventTrigger eventTrigger selectedObject.GetComponentEventTrigger();if (eventTrigger ! null){ExecuteEvents.Execute(eventTrigger.gameObject, eventData, ExecuteEvents.pointerUpHandler);selectedObject null;}}}public void OnBeginDrag(PointerEventData eventData){if (selectedObject ! null){EventTrigger eventTrigger selectedObject.GetComponentEventTrigger();if (eventTrigger ! null){ExecuteEvents.Execute(eventTrigger.gameObject, eventData, ExecuteEvents.beginDragHandler);}}GlobalEvent.Dispatch(UIExecuteEvent.OnBeginDragEvent, eventData);}public void OnDrag(PointerEventData eventData){if (selectedObject ! null){EventTrigger eventTrigger selectedObject.GetComponentEventTrigger();if (eventTrigger ! null){ExecuteEvents.Execute(eventTrigger.gameObject, eventData, ExecuteEvents.dragHandler);}}GlobalEvent.Dispatch(UIExecuteEvent.OnDragEvent, eventData);}public void OnEndDrag(PointerEventData eventData){if (selectedObject ! null){EventTrigger eventTrigger selectedObject.GetComponentEventTrigger();if (eventTrigger ! null){ExecuteEvents.Execute(eventTrigger.gameObject, eventData, ExecuteEvents.endDragHandler);}}GlobalEvent.Dispatch(UIExecuteEvent.OnEndDragEvent, eventData);}private bool RaycastToRenderTexture(PointerEventData eventData, out RaycastHit hit){Vector2 clickPosition eventData.position;Vector2 localPoint;RectTransformUtility.ScreenPointToLocalPointInRectangle(rawImage.rectTransform, clickPosition, eventData.pressEventCamera, out localPoint);Rect rect rawImage.rectTransform.rect;Vector2 normalizedPoint new Vector2((localPoint.x - rect.x) / rect.width, (localPoint.y - rect.y) / rect.height);Ray ray renderCamera.ViewportPointToRay(normalizedPoint);return Physics.Raycast(ray, out hit);}} }
http://www.yutouwan.com/news/88833/

相关文章:

  • 泉州建站方案宿迁房产中介
  • 公司网站建设方案pptru域名注册
  • 网站建设的好公司网上营销策略有哪些
  • 班级网站建设模板北京网站建设市场
  • 自己做电台直播的网站制作企业网站页面多少钱
  • 毕设网站开发需要做什么摄影网站功能设计
  • 网站 模板下载网易云跟帖 wordpress
  • 推荐几个做网站比较好的公司wordpress数据库容量
  • 腾讯理财是什么样的做网站建立公司网站时什么是重要的
  • 免费舆情网站直接打开app开发工具哪个好
  • 网站建设步骤详解视频教程个人网站搭建平台
  • 菏泽网站建设 梧桐树下载应用市场
  • html 网站新功能介绍滕州网站设计
  • 怎么注册网站域名个人简历表格电子版下载
  • 江苏分销网站建设网站建设的目的及功能
  • 河南做网站最好的公司药品网站前置审批
  • 用WordPress做网站入门课电子商务网站的建站流程
  • 做网站app 需要多少钱塑业东莞网站建设
  • 做情书直接点网站自己做网站模板
  • 网站建设登录结构图国外做化工网站
  • wordpress 地址插件昆明网站seo优化
  • 山西网站制作公司东莞市做网站的最好的是哪家的
  • 微信网站二次开发怎么删除安装wordpress
  • 利用店铺网站做灰色优化终身免费vps
  • 高端网站建设哪家好平台门户网站建设方案
  • 服装高级定制广州短视频seo哪家好
  • 给网站做cdn2013电子商务网站建设考试试卷
  • 如何创建自己的公司网站哪里免费做网站
  • iis本地网站wordpress 缓存 自适应
  • 亿联时代网站建设建一个英文网站需要多少钱