摄像机视角的切换_unity基础开发教程

摄像机视角的切换

  • 前言
  • 一、场景搭建
  • 二、脚本编辑
  • 三、脚本挂载
  • 四、运行效果
  • 结语

前言

我们在游戏中经常可以看到游戏视角的切换,今天我们就做一个视角切换的小demo,学会之后可以将其融入到自己的游戏制作当中。
话不多说,我们现在开始!
请添加图片描述

一、场景搭建

首先要有一个场景,先创建四个正方体,组成图中的样子。
在这里插入图片描述


这里教大家一个小工具:
当选中物体要进行移动的时候,按住V键;
然后挪动鼠标可以发现坐标中间有一个小方框,而且还可以吸附到指定的位点;
在按住V键不松手的同时点击鼠标左键进行拖动物体到指定位置,也可以吸附到指定的点位。这样就不用自己一点一点的调整位置了。
在这里插入图片描述


几何体完成之后要创建相机,除Main Camera之外再创建两个相机:Top CameraLeft Camera两个相机,并移动到合适的位置。
在这里插入图片描述
其中,Top CameraLeft Camera两个相机中的Projection属性需要更改为Orthographic正交视图,Size可以自行调整到合适大小
在这里插入图片描述

差不多效果就是这个样子就完成了:
在这里插入图片描述

二、脚本编辑

在Script文件夹下,创建一个脚本文件CameraSwitcher
在这里插入图片描述

然后打开文件键入以下代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CameraSwitcher : MonoBehaviour
{
    public Camera[] cameras;

    private int currentCameraIndex = 0;

    void Start()
    {
        // 禁用除了当前相机之外的所有相机
        for (int i = 0; i < cameras.Length; i++)
        {
            cameras[i].gameObject.SetActive(i == currentCameraIndex);
        }
    }

    // Update is called once per frame
    void Update()
    {
        // 检测用户输入来切换相机
        if (Input.GetKeyDown(KeyCode.V))
        {
            // 禁用当前相机
            cameras[currentCameraIndex].gameObject.SetActive(false);

            // 增加索引来切换到下一个相机
            currentCameraIndex = (currentCameraIndex + 1) % cameras.Length;

            // 启用新的相机
            cameras[currentCameraIndex].gameObject.SetActive(true);
        }
    }
}

三、脚本挂载

代码编辑完成之后,将其挂载到Cubes上,然后在其Inspector监视窗口添加相机
在这里插入图片描述

四、运行效果

上述完成之后就可以运行查看效果了,运行后按V键切换视角。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

结语

这个小demo就完成了,是不是做起来很简单,有什么问题可以评论区或者私信告诉我,另外可以尝试丰富它或者应用到自己制作的游戏项目中,下期见,拜拜!
请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/346549.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Unity中实现合理塔防寻路机制

前言 在一款TD游戏中,最重要的单位就两大类:防御塔(Tower)和敌人单位(Enemy)。在处理敌人单位的AI行为时,最基本也是最重要的就是自动寻路。在各式TD游戏中,防御塔的攻击方式以及敌人单位的Buff机制往往是能做出差异化的地方;而在寻路问题上,几乎是没有差异的,面对…

如何使用docker实现越权漏洞-webug靶场搭建(超详解)

越权漏洞-webug靶场搭建 1.打开docker systemctl start docker 2.查找webug docker search webug 3.拉取docker.io/area39/webug 镜像 docker pull docker.io/area39/webug 4.查看镜像 docker images 5.创建容器 docker run -d -p 8080:80 --name webug docker.io/area39/we…

Python 第四十三章 MYSQL 补充

多表查询 1.笛卡尔积:将两表所有的数据一一对应,生成一张大表 select * from dep,emp; #两个表拼一起 select * from dep,emp where dep.id emp.dep_id; #找到两表之间对应的关系记录 select * from dep,emp where dep.id emp.dep_id and dep.name技术; #筛选部门名称为技…

Sulfo Cy2 Biotin,水溶性 Cy2 生物素,能够与各种氨基基团特异性结合

您好&#xff0c;欢迎来到新研之家 文章关键词&#xff1a;Sulfo Cyanine2 Biotin&#xff0c;Sulfo Cy2 Biotin&#xff0c;水溶性 Cy2 生物素&#xff0c;Sulfo-Cy2-Biotin&#xff0c;水溶性-Cy2-生物素 一、基本信息 产品简介&#xff1a;Sulfo Cyanine2 Biotin, also k…

npm安装卡住问题(最新版)

npm安装卡住问题(最新版) 背景&#xff1a; ​ 最近这两天用npm安装一些包的时候&#xff0c;发现一直卡住&#xff1a; 报错&#xff1a; idealTree:npm: sill idealTree buildDeps之前能用的现在不能用了&#xff0c;我一想&#xff0c;是不是源头的问题&#xff0c;还真是…

安全防御第二次作业

将内网中各个接口能够ping通自己的网关 1.划分vlan [sw6]vlan batch 2 3 [sw6]int g0/0/2 [sw6-GigabitEthernet0/0/2]port link-type access [sw6-GigabitEthernet0/0/2]port default vlan 2 [sw6-GigabitEthernet0/0/2]int g0/0/3 [sw6-GigabitEthernet0/0/3]port link-t…

JVM/GC复习1---更新中

JVM/GC JVMGC垃圾回收算法1.引用计数法2.标记清除发3.标记压缩算法4.复制算法5.分代算法 收集器1.串行垃圾收集器2.并行垃圾收集器2.CMS垃圾收集器 3.G1垃圾收集器(重点)jdk1.7开始1.9默认的回收器Young GC模式Mixed GCFull GC JVM 待更新中ing GC 垃圾回收:程序运行的时候必…

leetcode刷题(剑指offer) 105.从前序与中序遍历序列构造二叉树

105.从前序与中序遍历序列构造二叉树 给定两个整数数组 preorder 和 inorder &#xff0c;其中 preorder 是二叉树的先序遍历&#xff0c; inorder 是同一棵树的中序遍历&#xff0c;请构造二叉树并返回其根节点。 示例 1: 输入: preorder [3,9,20,15,7], inorder [9,3,15,…

JVM实战(34)——内存溢出之消息队列处理不当

一、简介 本章&#xff0c;我们将介绍一个因为处理消息队列中的数据不当而引起的内存溢出问题&#xff0c;先来看下系统的背景。 1.1 系统背景 这是一个线上的数据同步系统&#xff0c;专门从Kafka消费其它系统送进去的数据&#xff0c;处理后存储到自己的数据库中&#xff1…

TensorFlow 深度学习 开发环境搭建 全教程

PyTorch 深度学习 开发环境搭建 全教程 1、指定清华源命令 -i https://pypi.tuna.tsinghua.edu.cn/simple​ 2、conda安装 这是AI开发环境的全家桶&#xff0c;官网下载链接Anaconda | Start Coding Immediately 尽量不要选择太新版本的python&#xff0c;3.8/3.9就已经足…

一次性密码 One Time Password,简称OTP

一次性密码&#xff08;One Time Password&#xff0c;简称OTP&#xff09;&#xff0c;又称“一次性口令”&#xff0c;是指只能使用一次的密码。一次性密码是根据专门算法、每隔60秒生成一个不可预测的随机数字组合&#xff0c;iKEY一次性密码已在金融、电信、网游等领域被广…

如何系统学习机器学习?

要系统学习机器学习&#xff0c;首先需要掌握一些基础编程技能&#xff0c;如Python。其次&#xff0c;学习基础的数学概念&#xff0c;如线性代数、概率论和统计学。然后&#xff0c;选择一些优质的在线课程和教材进行深入学习。最后&#xff0c;通过实践项目来巩固所学知识。…

[极客大挑战 2019]BabySQL1

发现union select被过滤了&#xff0c;双写绕过 or、from被过滤 where被过滤 在b4bysql中找到flag

微信小程序(十五)自定义导航栏

注释很详细&#xff0c;直接上代码 新增内容&#xff1a; 1.组件文件夹创建方法 2.自定义组件的配置方法 3.外部修改组件样式&#xff08;关闭样式隔离或传参&#xff09; 创建组件文件夹 如果是手动创建建议注意在json文件声明&#xff1a; mynav.json {//声明为组件可将这一…

中移(苏州)软件技术有限公司面试问题与解答(4)—— virtio所创建的设备1

接前一篇文章&#xff1a;中移&#xff08;苏州&#xff09;软件技术有限公司面试问题与解答&#xff08;0&#xff09;—— 面试感悟与问题记录 本文参考以下文章&#xff1a; VirtIO实现原理——PCI基础 VirtIO实现原理——virtblk设备初始化 特此致谢&#xff01; 本文对…

vue创建前端项目

背景 项目中需要用到前端技术&#xff0c;通过技术调研和团队分析&#xff0c;则采用vue作为前端主要技术栈。 问题 安装好后vue&#xff0c;按理说就可以创建vue项目 vue init webpack 项目名称 npm install&#xff0c;使用vue-cli脚手架搭建项目卡在sill idealTree buil…

(统计用词)Identifiability可识别性

A researcher can meaningfully discuss the model mathematical properties, estimation of parameters, hypotheses testing about parameters only if the model is said to be identifiable。 这里的model你可理解为就是一个分布&#xff0c;比如正态分布&#xff0c;其有…

宋仕强论道之华强北之胡说八道(五十)

最后又是我宋仕强胡说八道时间了&#xff0c;我经常在华强北一本正经的胡说八道。前段时间刀郎《罗刹海市》这歌很火&#xff0c;后面刀郎唱到了德国哲学家维特根斯坦&#xff0c;维特根斯坦从哲学层面来讲这个世界很多事情是说不清楚的&#xff0c;如我们思考时思路很清晣的事…

前端实现转盘抽奖 - 使用 lucky-canvas 插件

目录 需求背景需求实现实现过程图片示意实现代码 页面效果lucky-canvas 插件官方文档 需求背景 要求实现转盘转动抽奖的功能&#xff1a; 只有正确率大于等于 80% 才可以进行抽奖&#xff1b;“谢谢参与”概率为 90%&#xff0c;“恭喜中奖”概率为 10%&#xff1b; 需求实现 实…

CSDN社区怎么修改社区名称?上传社区logo等信息?

今天看到有人求助CSDN社区中如何修改社区名称以及上传社区logo等社区信息&#xff0c;对于这个问题&#xff0c;刚好boke112百科也创建有一个WordPress社区&#xff0c;所以知道怎么操作&#xff0c;具体如下&#xff1a; 1、前往CSDN社区并登录 >> 在右侧“我的社区”中…