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

湘西 网站 建设 公司台州百度推广优化

湘西 网站 建设 公司,台州百度推广优化,永春县住房和城乡规划建设局网站,河北省建设工程质量监督网站文章目录 问题描述功能展示技术细节小结 问题描述 本文提供的功能是摄像机朝向目标移动,并确定整个目标出现在摄像机视角内,针对不同尺寸的模型优化。 功能展示 提示:这里可以添加技术名词解释 技术细节 直接上代码 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.yayakq.cn/news/246487/

相关文章:

  • 帮客户做违法网站违法么视屏网站制作
  • 中国河北建设银行官网招聘网站0453牡丹江信息网二手房买卖
  • 深圳哪家网站建设公司好塘厦镇住房规划建设局网站
  • linux网站环境手机怎样建立网站
  • 在北京做家教的网站十五款夜间禁用app免费ios
  • 网站推广策划方式wordpress文章审核发邮件
  • 做字画的网站做pc端网站服务
  • 施工企业现状系统优化助手
  • 南昌网站推广logo制作软件手机免费版
  • 手机制作app模板杭州网站seo推广软件
  • 优秀网站配色免费外链网站
  • 红河网站建设设计手机网站建设比较好的公司
  • 网站文化建设爱站网长尾
  • 荆门建网站费用dede汽车资讯网站源码
  • 建立网站有什么要求浅析小型企业网站的建设
  • 怎么用word做网站go语言 网站开发
  • 百度站长平台注册wap静态模板
  • 肇庆市有那家做网站的wordpress评论开关
  • 月嫂网站建设方案做相亲网站犯法吗
  • 怎样查看网站开发聚合搜索引擎接口
  • 医院网站建设山东南和网站建设公司太原网站建设
  • 网站建设与管理的现状韩漫网站建设
  • 权威的顺德网站建设百度如何发布作品
  • 阿里巴巴网站网络营销的影响易语言网站建设
  • 云工厂网站建设网站建设的一些销售技巧
  • 宁波网站建设制作订做网站开发书
  • 网站模版 源码之家512内存 wordpress
  • 买链接做网站 利润高吗wordpress网站整站搬迁
  • 如何在本地发布自己做的网站怎么做域名网站
  • 住房与城乡建设部违法举报网站南通网站建设报价