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

网站上放百度地图怎么seo需要懂代码吗

网站上放百度地图怎么,seo需要懂代码吗,wordpress相册管理插件,网站如何做访客统计项目工程:unity模型显示在UI上并交互(点击、旋转、缩放)资源-CSDN文库 1.在Assets创建 Render Texture(下面会用到),根据需要设置Size 2.创建UIRawImage,并把Render Texture赋上 3.创建相机&am…

项目工程: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>/// 该脚本需要挂在摄像机上/// </summary>public 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 name="mousePosition">鼠标位置</param>/// <returns></returns>private bool IsPointerOverGameObject(Vector2 mousePosition){//创建一个点击事件PointerEventData eventData = new PointerEventData(EventSystem.current);eventData.position = mousePosition;List<RaycastResult> raycastResults = new List<RaycastResult>();//向点击位置发射一条射线,检测是否点击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 name="canvas"></param>/// <returns></returns>public string GetOverUI(GameObject canvas){PointerEventData pointerEventData = new PointerEventData(EventSystem.current);pointerEventData.position = Input.mousePosition;GraphicRaycaster gr = canvas.GetComponent<GraphicRaycaster>();List<RaycastResult> results = new List<RaycastResult>();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.GetComponent<EventTrigger>();// 如果组件存在,触发 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.GetComponent<EventTrigger>();if (eventTrigger != null){ExecuteEvents.Execute(eventTrigger.gameObject, eventData, ExecuteEvents.pointerDownHandler);selectedObject = eventTrigger.gameObject;}}}public void OnPointerUp(PointerEventData eventData){if (selectedObject != null){EventTrigger eventTrigger = selectedObject.GetComponent<EventTrigger>();if (eventTrigger != null){ExecuteEvents.Execute(eventTrigger.gameObject, eventData, ExecuteEvents.pointerUpHandler);selectedObject = null;}}}public void OnBeginDrag(PointerEventData eventData){if (selectedObject != null){EventTrigger eventTrigger = selectedObject.GetComponent<EventTrigger>();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.GetComponent<EventTrigger>();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.GetComponent<EventTrigger>();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.khdw.cn/news/29684.html

相关文章:

  • 做网站能挣钱么网络推广发帖网站
  • 网络营销营销型网站建设色盲色弱测试
  • 聊城做网站低费用网络营销论文
  • 网站界面设计如何实现功能美与形式美的统一长春网站推广排名
  • docker做网站兰州网站seo
  • 做公众号选择图片的网站2022年明星百度指数排行
  • 我的世界做图片的网站怎么做网络营销
  • 网站建设的相关技术方案百度官方推广
  • 自己怎么来建设网站销售
  • 制作网站时搜索图标如何做南宁seo网络推广
  • 郴州录取网站国内免费顶级域名注册
  • 网站建站的基本步骤龙岗seo网络推广
  • linux空间做网站百度搜索引擎官网
  • 温州做网站网页快照
  • 深圳ui设计师招聘seo优化快速排名技术
  • 深圳网站外包公司郑州优化公司有哪些
  • 网页制作大全排名优化软件
  • wordpress注册 邮件学校seo推广培训班
  • seo优化网站建设哪家好惠州seo推广外包
  • 高端网站建设 urkeji酒店营销策划与运营
  • 苏州网站的优化宁德市旅游景点大全
  • 英文都不懂 学网站建设维护难吗西安seo关键词查询
  • 做的新网站网上搜不到百度推广案例及效果
  • 完爆网站开发经典实例网络营销推广公司有哪些
  • 网站打不开是为什么河北网站建设公司排名
  • 网站建设主要做什么自助发稿
  • 龙岩网站建设专家专业网站优化外包
  • 学习做网站多久广安网站seo
  • 昆明软件开发公司做门户网站的网络推广方法大全
  • 在什么网站上可以做免费广告独立站建站平台有哪些