新绛网站建设,做美食网站,做商城网站报价,六站合一的应用场景#x1f468;#x1f4bb;个人主页#xff1a;元宇宙-秩沅
#x1f468;#x1f4bb; hallo 欢迎 点赞#x1f44d; 收藏⭐ 留言#x1f4dd; 加关注✅!
#x1f468;#x1f4bb; 本文由 秩沅 原创
#x1f468;#x1f4bb; 收录于专栏#xff1a;Uni… 个人主页元宇宙-秩沅
hallo 欢迎 点赞 收藏⭐ 留言 加关注✅!
本文由 秩沅 原创
收录于专栏Unity游戏demo
⭐️Unity3D赛车游戏⭐ 文章目录 ⭐️Unity3D赛车游戏⭐⭐前言⭐A系统优化——相机的跟随为什么要优化单个场景镜头多个场景镜头脚本 ⭐️⭐ ⭐前言⭐
– ️版本: Unity2021 ️适合人群Unity初学者 ️学习目标3D赛车游戏的基础制作 ️技能掌握 A系统优化——相机的跟随 为什么要优化 代码过于复杂并且滑轮镜头不适合后续游戏的进行 单个场景镜头 优化如下 //相机跟随功能public void FllowEffect() { //实现从不同的角度切入观看transform.position target.position * (1 - smoothTime) transform.position * smoothTime;transform.LookAt(target.parent );smoothTime (Control.Km_H 150 ) ? ( Mathf .Abs(Control.Km_H)/150) - 0.85f : 0.45f;}此时代码放入了LateUpdate里面 1.优点确实是是是跟随 2.缺点但是会造成镜头的晃动 改成放入了FixedUpdate里面 原因FixedUpdate是固定帧执行精准的实时跟随反而会放大细节 多个场景镜头 设置多个场景的位置 输入管理更新 演示效果 脚本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//-------------------------------------
//—————————————————————————————————————
//___________项目:
//___________功能 相机的管理
//___________创建者_____秩沅_____
//_____________________________________
//-------------------------------------
public class CameraContorl : MonoBehaviour
{//目标物体public Transform targetOb;public Transform[] target ;private CarMoveControl Control;public float speed;//相机平滑值public float smoothTime;//镜头的选择public int ChooseIndex ;[Header(----------加速时相机属性-------------)]//加速时的跟随力度[Range(1, 5)]public float shiftOff;//目标视野 让其显示可见[SerializeField ]private float addFov;//当前视野private float startView;[Range(1,10)]public float followLerp 1;[Range(1,10)]public float angleLerp 1;//为一些属性初始化private void Start(){ startView Camera.main.fieldOfView; //将相机的开始属性赋入addFov 30;//获取镜头位置for (int i 0; i 3; i){target[i] targetOb.GetChild(0).GetChild(i);}}private void Update(){TabViewChoose(); //选择镜头}void FixedUpdate(){CameraAtrribute(); //相机属性显示FllowEffect(); //相机跟随功能FOXChange(); //加速时相机视野的变化}//选择场景private void TabViewChoose(){//按下Tab键时if(InputManager.InputManagerment.TabView)ChooseIndex ChooseIndex 1 ? 0 : ChooseIndex1;}//相机跟随功能private void FllowEffect() {//-------1.镜头的跟随方法一---------//实现从不同的角度切入观看//transform.position target[ChooseIndex].position * (1 - smoothTime) transform.position * smoothTime;//速度不同跟随的角度不同//moothTime (Control.Km_H 150) ? (Mathf.Abs(Control.Km_H) / 150) - 0.85f : 0.45f;//-------2.镜头的跟随方法二---------transform.position Vector3.Lerp(transform.position, target[ChooseIndex].position, Time.deltaTime * speed);transform.LookAt(targetOb );} //加速时相机视野的变化private void FOXChange(){if(Input.GetKey(KeyCode.LeftShift) ) //按下坐标shift键生效{Camera.main.fieldOfView Mathf.Lerp(Camera.main.fieldOfView , startView addFov ,Time .deltaTime * shiftOff );}else{Camera.main.fieldOfView Mathf.Lerp(Camera.main.fieldOfView, startView, Time.deltaTime * shiftOff);}}//相机属性显示private void CameraAtrribute(){//实时速度Control targetOb.GetComponentCarMoveControl();speed Mathf.Lerp(speed, Control.Km_H / 4, Time.deltaTime);speed Mathf.Clamp(speed, 0, 55); //对应最大200公里每小时}}
⭐️⭐ ⭐【Unityc#专题篇】之c#进阶篇】
⭐【Unityc#专题篇】之c#核心篇】
⭐【Unityc#专题篇】之c#基础篇】
⭐【Unity-c#专题篇】之c#入门篇】
⭐【Unityc#专题篇】—进阶章题单实践练习
⭐【Unityc#专题篇】—基础章题单实践练习
⭐【Unityc#专题篇】—核心章题单实践练习 你们的点赞 收藏⭐ 留言 关注✅是我持续创作输出优质内容的最大动力、