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

视频网站做漫画网站开发人员需要去做原型吗

视频网站做漫画,网站开发人员需要去做原型吗,网站的框架,腾讯云云服务器官网一、效果展示 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/a/447304.html

相关文章:

  • 蓝桥云课中支持的ROS1版本有哪些?-2025在线尝试ROS1全家福最方便的打开模式-
  • 做网站公司怎么赚钱线上seo关键词优化软件工具
  • Databricks 企业级限流架构设计
  • 海尔网站推广策划方案装修的网站
  • 蓬莱网站建设价格莆田网站建设
  • 杭州网站设计公司哪家好定制v软件
  • 加快网站访问速度wordpress文章只显示题目
  • 网站远程数据库制作网站的固定成本
  • 国际购物网站平台有哪些给一个网站做需求分析
  • 网站开发的ui设计php网站建设步骤
  • 托举航天器的“千里眼”与“顺风耳”——航天测控系统全解析
  • 长春免费做网站不同类型网站优化
  • 【PID入门教程】PID基本原理
  • 合肥建筑网站单位网站维护 网站建设岗位
  • 潍坊装饰网站建设男装网站模板演示
  • 网站设计和制作费用phpcms手机网站模板
  • 网站设置超链接用wordpress修改网站
  • 《网站建设》项目实训报告商城网站源码dede
  • python 手机网站开发l礼品文化网站建设
  • 餐饮网站建设怎么建设的山西搜索引擎优化
  • 纯html网站南充市租房子信息网
  • 烟台网站建设求职简历xhinacd.wordpress
  • Spring 单例 Bean 的多线程并发问题详解
  • 单位网站建设费用支出账务处理建设一个商城网站大概多少钱
  • Nginx 生产级知识架构树(按流量路径 + 运维维度组织)含生产常见错误
  • 昆明做网站排名珠海市网络营销协会的官方网站
  • 网站百度快照不更新高州网站建设公司
  • 用DW做的网站怎么分享给别人英文网站cms
  • 网站建设费用申报重庆网站推广报价
  • 绵阳网站建设 科雨网络100部禁用app