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

重庆专业网站推广百度快照是干什么的

重庆专业网站推广,百度快照是干什么的,卓进网站,车辆优化管理专业网站一、效果展示 Unity实现模型移动、旋转和缩放功能 通过鼠标实现对模型的不同操作 鼠标中键点击,模型变为高亮状态,表示选中状态,再次点击其他地方,则取消高亮,表示未选中状态 鼠标中键上下滚动,实现模型的缩…

一、效果展示

Unity实现模型移动、旋转和缩放功能

通过鼠标实现对模型的不同操作
鼠标中键点击,模型变为高亮状态,表示选中状态,再次点击其他地方,则取消高亮,表示未选中状态
鼠标中键上下滚动,实现模型的缩放
鼠标左键点击或长按,实现模型的移动
鼠标右键点击,左右滑动,实现模型的水平旋转;同时按下shift键,上下滑动,实现模型垂直旋转

二、实现完整代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class ModelControl : MonoBehaviour
{private Material originalMaterial;      //模型原始材质private Material highlightMaterial;     //模型选中时的高亮材质private Renderer myRenderer;            //模型渲染组件private bool isSelect = false;          //模型是否被旋转// Start is called before the first frame updatevoid Start(){//确保模型在地面上方KeepOnGround();//新建一个高亮材质highlightMaterial = new Material(Shader.Find("Universal Render Pipeline/Lit"));highlightMaterial.color = Color.yellow;highlightMaterial.SetFloat("_Smoothness", 0.8f);highlightMaterial.SetColor("_EmissionColor", Color.yellow * 1.2f); // 开启自发光//获取原始材质myRenderer = GetComponent<Renderer>();if (myRenderer != null){originalMaterial = myRenderer.material;}//判断是否包含碰撞体组件,不包含直接添加if (GetComponent<Collider>() == null){gameObject.AddComponent<BoxCollider>();}}// Update is called once per framevoid Update(){if (Input.GetMouseButton(0)&&isSelect){//鼠标左键控制移动Drag();}if (Input.GetMouseButton(1)&&isSelect){//鼠标右键控制旋转Rotate();}float scroll = Input.GetAxis("Mouse ScrollWheel");if (Mathf.Abs(scroll) > 0.01f&&isSelect){// 鼠标中键滚轮:缩放模型Scale(scroll);}if (Input.GetMouseButton(2)){//鼠标中键点击,进行模型选中Select();}}/// <summary>/// 模型选中方法  选中显示高亮  否则选择原始材质/// </summary>public void Select(){Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);if (Physics.Raycast(ray, out RaycastHit hit)){//鼠标点击到模型if (hit.collider.gameObject == this.gameObject){myRenderer.material = highlightMaterial;isSelect = true;}else{//点击到别的模型myRenderer.material = originalMaterial;isSelect = false;}}else{//点击到空白处myRenderer.material = originalMaterial;isSelect = false;}}/// <summary>/// 模型移动方法/// </summary>void Drag(){Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);RaycastHit hit;if (Physics.Raycast(ray, out hit)){if (hit.transform.name == "Plane"){this.transform.position = hit.point;KeepOnGround();}}}/// <summary>/// 模型旋转方法 鼠标右键=左右旋转 shift+鼠标右键=上下旋转/// </summary>void Rotate(){       if (Input.GetKey(KeyCode.LeftShift)){float rotY = Input.GetAxis("Mouse Y") * 5f;this.transform.Rotate(Vector3.right, rotY, Space.World);}else{float rotX = Input.GetAxis("Mouse X") * 5f;this.transform.Rotate(Vector3.up, rotX, Space.World);}}/// <summary>/// 模型缩放方法/// </summary>/// <param name="scroll">缩放倍率</param>void Scale(float scroll){float scaleFactor = 1 + scroll;this.transform.localScale *= scaleFactor;KeepOnGround();}/// <summary>/// 确保模型在地面上方,防止穿模/// </summary>void KeepOnGround(){// 计算当前模型的边界包围盒Renderer renderer = GetComponentInChildren<Renderer>();if (renderer != null){Bounds bounds = renderer.bounds;float bottomY = bounds.min.y;float offsetY = transform.position.y - bottomY;float targetY = 0f; // 地面高度为0(可根据你的地面高度调整)Vector3 pos = transform.position;pos.y += targetY - bottomY;this.transform.position = pos;}}
}
http://www.dtcms.com/wzjs/414568.html

相关文章:

  • 北京市公安局网站备案seo优化排名
  • 广州市网站建设价格松原新闻头条
  • 怎么用千牛做网站在线客服百度查重免费入口
  • adsense用什么网站做index百度指数
  • 网站制作加教程视频教程学历提升哪个教育机构好一些
  • 没有做icp备案的网站百度app安装免费下载
  • 电子商务网站建设与管理实务西安高端网站建设公司
  • 网站制作的公司有哪些营销推广有哪些形式
  • 黄岛做网站找哪家好百度seo优化教程免费
  • 惠州做棋牌网站建设有哪些公司百度置顶广告多少钱
  • 做网站百度排前位原创文章代写
  • 比较开放的浏览器网址四川seo整站优化吧
  • 网站建设的主要特征汽车网络营销推广方案
  • 视频作品投票网站如何做杭州小程序建设公司
  • 买虚机送网站建设安卓优化大师老版本
  • 网站怎么做排名优化会计培训班要多少钱
  • 自己怎样制作网站大数据平台
  • 网上哪些网站可以做设计项目软文营销什么意思
  • 广州番禺建网站seo是什么意思中文翻译
  • 番禺做网站哪家好如何做个网站推广自己产品
  • 可以做日照分析图的网站线下课程seo
  • 阳江招聘网娱乐业怎么理解搜索引擎优化
  • b2c商城开发公司seo营销推广全程实例
  • 怀化建设公司网站数据推广公司
  • 顺德手机网站设计咨询360建站系统
  • 如何建设自己的网站 知乎网红营销
  • 朔州市2018年建设工程网站网站运营课程
  • 重庆网站开发建设百度动态排名软件
  • 十大免费模板网站全国疫情突然又严重了
  • b2c网站需要注意郑州seo优化服务