👨💻个人主页:@元宇宙-秩沅
👨💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!
👨💻 本文由 秩沅 原创
👨💻 收录于专栏:Unity基础实战
⭐🅰️⭐
⭐前言⭐
🎶(A) 摄像机简单跟随引擎实现
直接作为子对象课实现简单跟随
🎶(B) 摄像机简单跟随API实现
通过向量的加减更新相机位置来保持简单的跟随
public class MoveCamera : MonoBehaviour
{
public float zoff = 5;
public float yoff = 6;
public Transform targetObject; //跟随的目标物体
private void LateUpdate()
{
//向量减去标量
transform.position = targetObject.transform.position - Vector3.forward * zoff+Vector3.up * yoff;
transform.LookAt(targetObject);
}
}
ss
差值位置的实时更新
void LateUpdate()
{
offset = cube.position - transform.position;
transform.position +=offset;
}
🎶(C) Lerp差值先快后慢的跟随
🎶(D) 四元数应用的缓慢旋转跟随
transform.rotation = Quaternion.Slerp(transform.rotation,Quaternion.LookRotation(NowRota),
Time.deltaTime * RoteSpeed);
🎶(E)摄像机的小地图
😶🌫️步骤:
1.创建Textrue材质
2.在UI面板上添加Texture的位置控件——选择位置
3.将材质拖拽到camera参数中的 target texture
-
Target Texture 行为渲染
当中
——————————————
🎶摄像机相关综合应用
😶🌫️步骤:
第一步:确定要跟随的位置————物体上方5米处
第二步:确定离目标位置的距离————通过滚轮 的变化更改距离 并且不能超出 限定的范围(2,10)
第三步:确定看向物体的角度 ————角度为45度
第四步:实现缓慢的移动跟随——线性差值
第五步:实现缓慢的旋转跟随 ——四元数差值
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//-------------------------------------
//—————————————————————————————————————
//___________项目: ______________
//___________功能: 向量在摄像机机移动上的应用
//___________创建者:秩沅_______________
//_____________________________________
//-------------------------------------
public class MoveCamera : MonoBehaviour
{
//第一步:确定要跟随的位置————物体上方5米处
//第二步:确定离目标位置的距离————通过滚轮 的变化更改距离 并且不能超出 限定的范围(2,10)
//第三步:确定看向物体的角度 ————角度为45度
//第四步:实现缓慢的移动跟随
//第五步:实现缓慢的旋转跟随
public Transform target;
//现在最终跟随的位置
public Vector3 NowTarget;
//可更改的视野位置
public float Angle = 45; //偏移的角度
public float ViewDis = 5f;
public float ScrollSpeed = 1f; //滑轮速度
public float min = 2f;
public float max = 10f;
//跟随对象移动和旋转速度
public float moveSpeed = 2f;
public float RoteSpeed = 2f;
//看向最终的角度
private Vector3 NowRota;
private void Update()
{
//-------鼠标滑轮限制位置距离 ---------
ViewDis += Input.GetAxis("Mouse ScrollWheel")*ScrollSpeed ;
ViewDis = Mathf.Clamp(min, ViewDis, max);
//------------------------------------
//------确定摄像机的终点位置------
//确定高度
NowTarget = target.position + target.up * ViewDis;
//确定看向的角度和后方距离
NowRota = Quaternion.AngleAxis(Angle, target.right) * target.forward ;
NowTarget = NowTarget - NowRota * ViewDis;
//实现缓慢移动
transform.position = Vector3.Lerp(transform.position, NowTarget, Time .deltaTime *moveSpeed );
Debug.DrawLine(transform.position, target.position + target.up * ViewDis);
//实现缓慢旋转
transform.rotation = Quaternion.Slerp(transform.rotation,Quaternion.LookRotation(NowRota), Time.deltaTime * RoteSpeed);
//传入LookRotation中的是向量
}
}
🎶(F)FPS的相机跟随,只移动X的范围
⭐🅰️⭐
⭐【Unityc#专题篇】之c#进阶篇】
⭐【Unityc#专题篇】之c#核心篇】
⭐【Unityc#专题篇】之c#基础篇】
⭐【Unity-c#专题篇】之c#入门篇】
⭐【Unityc#专题篇】—进阶章题单实践练习
⭐【Unityc#专题篇】—基础章题单实践练习
⭐【Unityc#专题篇】—核心章题单实践练习
你们的点赞👍 收藏⭐ 留言📝 关注✅是我持续创作,输出优质内容的最大动力!、文章来源:https://www.toymoban.com/news/detail-657031.html
文章来源地址https://www.toymoban.com/news/detail-657031.html
到了这里,关于【Unity每日一记】摄像机相关代码API大全的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!