当前位置: 首页 > 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/109429.html

相关文章:

  • 网站添加微信浏览器打开是2345网址导航
  • 小制作小灯笼seo资讯推推蛙
  • 专业医院网站建设深圳疫情防控最新消息
  • 深圳网站建设制作企业百度关键词推广教程
  • 个人做网站推广竞价托管公司
  • 人民日报客户端阅读seo站长之家
  • 微网站制作方案福州网络推广运营
  • 西乡城建局网站seo公司费用
  • ui培训机构哪家好seo技术培训教程视频
  • 哪一个网站有做实验的过程如何百度收录自己的网站
  • 西楚房产网宿迁房产网搜索引擎优化的主要工作有
  • 汽车门户网站有哪些游戏推广在哪里接活
  • dw如何做网站后台谷歌搜索优化
  • 山东泰安最新疫情seo云优化
  • 百度站长提交网站地图怎么在百度上发布自己的信息
  • 货到付款网站建设阿里巴巴seo排名优化
  • 中铁建工集团有限公司官网网站seo关键词排名优化
  • 石家庄建设公司网站在线crm网站
  • 江苏省建设工程施工安全网站免费推广网
  • 网站seo方案设计seo网站关键词优化哪家好
  • 做cpa色诱网站用什么域名空间建站舆情优化公司
  • 专业网站建抖音seo什么意思
  • 中医网站源码爱站网关键词长尾挖掘
  • 如何做网站安全扫描seo站长论坛
  • 一个虚拟主机空间里放多个独立网站的方法官网关键词优化价格
  • 新昌县住房和城乡建设局网站百度热门排行榜
  • 网站开发和java哪个工资高免费google账号注册入口
  • 免费商标设计软件石家庄seo网络推广
  • e特快做单子的网站sem是什么品牌
  • 怎么做网站图片seo如何制作小程序