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

2022最新通道地址1爱站seo工具

2022最新通道地址1,爱站seo工具,临沂专业网站制作公司,网站管理助手+建设中文章目录 问题描述功能展示技术细节小结 问题描述 本文提供的功能是摄像机朝向目标移动,并确定整个目标出现在摄像机视角内,针对不同尺寸的模型优化。 功能展示 提示:这里可以添加技术名词解释 技术细节 直接上代码 using UnityEngine;…

文章目录

    • 问题描述
    • 功能展示
    • 技术细节
    • 小结

问题描述

本文提供的功能是摄像机朝向目标移动,并确定整个目标出现在摄像机视角内,针对不同尺寸的模型优化。

功能展示

提示:这里可以添加技术名词解释
在这里插入图片描述

技术细节

直接上代码

using UnityEngine;public class CameraController : MonoBehaviour
{public Transform target; // 模型的Transform组件public float moveSpeed = 5.0f; // 摄像机移动速度public float rotationSpeed = 2.0f; // 摄像机旋转速度public float minDistance = 2.0f; // 摄像机与模型的最小距离public float maxDistanceMultiplier = 1.0f; // 最大距离的倍数private Vector3 targetOffset; // 目标相对于中心的偏移private void Start(){if (target == null){Debug.LogWarning("目标模型为空,请在Inspector中指定目标模型的Transform组件。");return;}// 初始化目标偏移targetOffset = target.position - transform.position;}private void Update(){if (target == null)return;// 计算摄像机指向目标的方向Vector3 targetDirection = target.position - transform.position;targetDirection.y = 0; // 如果只关注水平方向,可以将y轴置为0// 计算摄像机应该旋转的角度Quaternion targetRotation = Quaternion.LookRotation(targetDirection);// 平滑地旋转摄像机朝向目标transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, rotationSpeed * Time.deltaTime);// 计算摄像机与目标的距离float distance = Vector3.Distance(transform.position, target.position);// 根据模型的大小自动调整最小距离float modelSize = CalculateModelSize();float minDistance = modelSize * 0.5f;// 计算最大距离float maxDistance = modelSize * maxDistanceMultiplier;// 限制距离在最小和最大范围内distance = Mathf.Clamp(distance, minDistance, maxDistance);// 移动摄像机向前transform.Translate(Vector3.forward * moveSpeed * Time.deltaTime);// 计算目标的期望位置Vector3 desiredPosition = target.position - targetOffset - targetDirection.normalized * distance;// 平滑移动摄像机到期望位置transform.position = Vector3.Lerp(transform.position, desiredPosition, Time.deltaTime * moveSpeed);}// 计算模型的大小private float CalculateModelSize(){// 这里可以根据模型的具体情况来计算大小// 例如,可以获取模型的包围盒尺寸// 也可以根据模型中的特定标记来计算大小// 这里只是一个示例,需要根据实际情况进行调整Bounds bounds = new Bounds(target.position, Vector3.one);Renderer[] renderers = target.GetComponentsInChildren<Renderer>();foreach (Renderer renderer in renderers){bounds.Encapsulate(renderer.bounds);}// 返回模型的大小(包围盒的对角线长度)return bounds.size.magnitude;}
}

小结

后期可扩展功能:类似点击目标完成视角移动等。

http://www.ds6.com.cn/news/98029.html

相关文章:

  • 昆明哪个公司做网站建设最好科技公司网站制作公司
  • 网站推广应该怎么做it培训班大概需要多少钱
  • 高校建设主流的校园网站怎样注册自己的网站
  • 网站模板 安全吗怎么优化百度关键词
  • 石家庄微网站建设公司哪家好google搜索免费入口
  • 怎样暂停域名指向网站网站推广优化的方法
  • 宁波专业做公司网站的科技公司学历提升
  • 单页面网站教程seo服务建议
  • 女子医院网站开发策略网络推广的方法有多选题
  • 合肥门户网站有哪些怎么优化推广自己的网站
  • iis做网站上传速度慢公关
  • 公司做营销型网站中国免费网站服务器下载
  • 广州外贸b2b网站建设新能源汽车公司
  • 网站建设或网站优化排名电脑培训班多少费用
  • 帮助企业做网站的销售网站页面seo
  • 影视网站怎么做优化58和百度哪个推广效果好
  • wordpress地址 站点地址链接买卖价格
  • 简单网站设计网站网络推广员有前途吗
  • 流媒体网站建设方案整站排名
  • 福州医院网站建设公司什么是百度搜索推广
  • 网站建设服务器都有哪些潍坊新闻头条最新消息
  • html5 经典网站查询域名注册信息
  • 企业营销网站建设规划seo网站排名优化服务
  • 深圳网络做网站哈尔滨优化网站公司
  • 制作网站的心得推广运营公司哪家好
  • 长春有微信网站一起整的吗微商怎样让客源主动加你
  • 15个平面设计图素材网站淘宝seo排名优化
  • 高端公司网站设计华为云速建站
  • 日本做爰网站怎么做推广和宣传
  • 做贸易上什么网站公众号推广费用一般多少