Unity3D入门(二) :Unity3D实现视角的丝滑过渡切换

news/2024/9/29 2:23:35/

1. 前言

上篇文章,我们已经初步了解了Unity3D,并新建并运行起来了一个项目,使相机视角自动围绕着立方体旋转。 这篇文章,我们来讲一下Unity3D怎么过渡地切换视角

我们继续是我上篇文章中的项目,但是需要向Camera Controller这个脚本删除,因为这会影响本文中的功能。

2. 添加材质

为了让立方体显示地更清楚,我们这里添加下材质。

Assets下右击,Create > Meterial

在这里插入图片描述

新建一个材质

在这里插入图片描述

将其颜色修改为蓝色

在这里插入图片描述

然后将这个材质拖到Cube立方体的Inspector面板中的Materials

在这里插入图片描述

可以发现,立方体的颜色立即发生了改变

在这里插入图片描述

3. 实现视角过渡切换

仅使用Camera的平移来实现视角变化,是不够顺滑的。
要实现视角的渐变,这里需要用到Cinemachine

Cinemachine是一个强大的相机(Camera)控制扩展系统,它极大地简化了Unity3D开发中相机操作的复杂性和工作量。通过引入虚拟摄像机的概念,Cinemachine允许开发者以更直观和灵活的方式控制游戏中的视觉呈现,从而增强游戏的沉浸感和视觉效果。

3.1 安装Clinemachine

点击Window > Package Manager

在这里插入图片描述

选择Packages:Unity Registry,找到Cinemachine,点击Install安装。

在这里插入图片描述

然后在Hierarchy面板右击,选择Cinemachine > Virtual Camera,添加虚拟相机

在这里插入图片描述

这里我添加了两个,分别重命名为Virtual Camera1Virtual Camera2,并把这两个虚拟相机摆放在不同位置,从而分别拥有不同的视角。

在这里插入图片描述

这个时候,可以看到,在Main CameraInspector面板中,多了一个CinemachineBrain组件

在这里插入图片描述

我们运行项目,通过启用和取消启用Virtual Camera1来切换Virtual Camera1Virtual Camera2的视角

在这里插入图片描述

可以看到视角渐变得切换了。

在这里插入图片描述

Android_82">4. 导出到Android

接着我们可以将项目打包成apk,从而可以在Android中运行。 (需要注意,2.1 Unity安装步骤中Unity Hub需要安装Android平台)

我们点击File>Build Settings

在这里插入图片描述

这里我们还可以点击Player Settings,选择Landscape Left,这样我们生成的apk,默认情况下就会以横屏运行了。

在这里插入图片描述

导出Android,设置横屏 : unity在打包时设置手机屏幕横屏竖屏的方法_unity打包默认横屏-CSDN博客

接着点击BuildBuild And Run(构建并安装到手机里运行)

在这里插入图片描述

可以发现构建完成后,在项目目录下生成了一个apk文件

在这里插入图片描述

我们将这个apk安装到手机上

可以发现如下效果如下
在这里插入图片描述
虽然显示出来了蓝色的立方体,但是并没有按钮能触发视角的变化。
接下来,下一篇文章,我们会来实现Android与Unity的通信,点击Android按钮的时候,来切换Unity的视角。

Unity3D_113">5. Unity3D入门系列文章

Unity3D入门(一) : 第一个Unity3D项目,实现矩形自动旋转,并导出到Android运行
Unity3D入门(二) :Unity3D过渡切换视角
Unity3D入门(三) : AndroidUnity3D交互 - Android调用Unity
Unity3D入门(四) : AndroidUnity3D交互 - Unity调用Android

参考
Unity3D应用开发_中国大学MOOC


http://www.ppmy.cn/news/1531223.html

相关文章

JAIN SLEE 和 Spring Boot对比

在性能方面,JAIN SLEE 和 Spring Boot 各有优势,取决于使用场景。为了更好地比较两者的性能,以下从几个关键方面进行分析: 1. 设计目标与适用场景 JAIN SLEE:专门为电信级应用设计,擅长处理高并发、低延迟…

代码随想录打卡Day39

今天是打家劫舍专题,三道题全都看了讲解,第一次做感觉确实是无从下手。。。不过了解了原理之后代码很快就写出来了。 198.打家劫舍 这道题使用一维dp数组,首先确定dp数组的含义,dp[i]为考虑偷下标[0, i]家的情况下所能获得的最大…

QT 如何判断电脑已安装某个软件

如何判断Windows电脑是否已经安装了某个软件&#xff1f;一般而言&#xff0c;通过安装包形式安装的软件&#xff0c;都会把卸载信息写入到注册表&#xff0c;本文正是通过读取注册表的方式来判断是否已安装了该款软件&#xff0c;详见下面代码&#xff1a; #include <QCor…

【Vue】以RuoYi框架前端为例,ElementUI封装图片上传组件——将图片信息转成base64后提交到后端保存

RuoYi 框架本身对于图片上传功能&#xff0c;在ElementUI的 <el-upload> 组件的基础装封装了 /components/ImageUpload/index.vue 组件。本组件就是在 RuoYi 自定义的 <ImageUpload> 组件的基础上进行改造&#xff0c;将图片的信息在上传之前处理成 base64 格式&am…

如何选择高品质SD卡

如何选择高品质SD卡 SD卡&#xff08;Secure Digital Memory Card&#xff09;是一种广泛使用的存储器件&#xff0c;因其快速的数据传输速度、可热插拔的特性以及较大的存储容量&#xff0c;广泛应用于各种场景&#xff0c;例如在便携式设备如智能手机、平板电脑、运动相机等…

Xcode 16 Pod init 报错

pod init failed in Xcode 16 Issue #12583 CocoaPods/CocoaPods GitHub 根据你提供的步骤&#xff0c;以下是详细的操作指南来解决 CocoaPods 的问题&#xff1a; ### 步骤 1&#xff1a;在 Xcode 中转换项目文件夹为组 1. 打开你的 Xcode 项目。 2. 在左侧的项目导航器…

YOLOv8 Flask整合问题

YOLOv8 Flask整合问题 yolov8 flask 后代码没有进行推理问题。 Bug model.predict()pyinstallerHTTPServer/flask: not executing yolov8是异步线程调用了&#xff0c;flask打包exe后会应该异步问题&#xff0c;model.predict()不会进行返回&#xff0c;导致没有看着没有执行而…

Elasticsearch黑窗口启动乱码问题解决方案

问题描述 elasticsearch启动后有乱码现象 解决方案&#xff1a; 提示&#xff1a;这里填写该问题的具体解决方案&#xff1a; 到 \config 文件下找到 jvm.options 文件 打开后 在文件末尾空白处 添加 -Dfile.encodingGBK 保存后重启即可。