【Unity 3D】学习笔记三十五:游戏实例——摄像机切换镜头

摄像机切换镜头

在游戏中常常会切换摄像机来观察某一个游戏对象,能够说。在3D游戏开发中,摄像头的切换是不可或缺的。

这次我们学习总结下摄像机怎么切换镜头。

代码:

private var Camera0: GameObject;
private var Camera1: GameObject;
private var Camera2: GameObject;
private var Camera: GameObject;

function Start()
{
	//获取摄像机对象
	Camera = GameObject.Find("Camera");
	Camera0 = GameObject.Find("Camera0");
	Camera1 = GameObject.Find("Camera1");
	Camera2 = GameObject.Find("Camera2");
}

function OnGUI ()
 {

	if(GUILayout.Button("投射側面",GUILayout.Height(50)))
	{
			//关闭Camera1与Camera2
			Camera.active = false;
			Camera1.active = false;
			Camera2.active = false;

			//打开Camera0
			Camera0.active = true;
	}

	if(GUILayout.Button("投射正面",GUILayout.Height(50)))
	{
			//关闭Camera0与Camera2
			Camera.active = false;
			Camera0.active = false;
			Camera2.active = false;

			//打开Camera1
			Camera1.active = true;

	}

	if(GUILayout.Button("投射上面",GUILayout.Height(50)))
	{
			//关闭Camera0与Camera1
			Camera.active = false;
			Camera0.active = false;
			Camera1.active = false;

			//打开Camera2
			Camera2.active = true;

	}
	if(GUILayout.Button("全景投射",GUILayout.Height(50)))
	{
			//关闭Camera0与Camera1
			Camera0.active = false;
			Camera1.active = false;
			Camera2.active = false;
			//打开Camera2
			Camera.active = true;

	}
}

执行后:

投射正面:

投射側面:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMzI4OTE4OA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

投射上面:

全景投射:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMzI4OTE4OA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

值得注意的是。这些样例须要非常多的资源,假设有朋友想要做出这种效果,没有相关的贴图资源是能难道达到的。只是在更新完整个unity入门的学习笔记。我将会把全部的源码上传。请大家耐心等待。先读懂之前的文章会有助于以后的学习的。谢谢观看。

时间: 2024-10-06 00:39:54

【Unity 3D】学习笔记三十五:游戏实例——摄像机切换镜头的相关文章

【Unity 3D】学习笔记三十:游戏元素——游戏地形

游戏地形 在游戏的世界中,必然会有非常多丰富多彩的游戏元素融合当中. 它们种类繁多.作用也不大同样.一般对于游戏元素可分为两种:经经常使用.不经经常使用.经常使用的元素是游戏中比較重要的元素.一般须要使用脚本来实现某些特殊功能.比方:玩家控制的主角对象,须要攻击的敌人等. 因此经常使用的元素直接影响游戏的执行,而不常有的元素.比方说游戏里的天空,云朵等.不影响游戏的主线.只提升游戏的总体效果. 创建地形 在3D游戏里,常常会出现起伏的地形. 本文变总结回想下怎样在游戏里创建游戏地形. 首先在导航

JAVA学习笔记(三十五)- 随机读写文件 RandomAccessFile

RandomAccessFile类 /* * RandomAccessFile类,随机读写文件 * * 数据分段要有规律,每段大小相等,可以将每段数据设置为较大的值,足以存在每一个段的数据 * */ public class Test04 { public static void main(String[] args) throws IOException { //writeFile(); readFile(); } // 写入数据 public static void writeFile()

PHP学习笔记三十五【Try】

<?php function AddUser($name) { if($name=="张三") { echo "add success"; return true; }else { throw new Exception("添加失败"); } } function updateUser($username) { if($username=="张三") { return true; }else{ throw new Exc

【Unity 3D】学习笔记三十四:游戏元素——常用编辑器组件

常用编辑器组件 unity的特色之一就是编辑器可视化,很多常用的功能都可以在编辑器中完成.常用的编辑器可分为两种:原有组件和拓展组件.原有组件是编辑器原生的一些功能,拓展组件是编辑器智商通过脚本拓展的新功能. 摄像机 摄像机是unity最为核心组件之一,游戏界面中显示的一切内容都得需要摄像机来照射才能显示.摄像机组件的参数如下: clear flags:背景显示内容,默认的是skybox.前提是必须在render settings 中设置天空盒子材质. background:背景显示颜色,如果没

【Unity 3D】学习笔记三十二:游戏元素——游戏光源

游戏光源 在3D游戏中,光源是一个非常具有特色的游戏组件.用来提升游戏画面质感的.如果没有加入光源,游戏场景可能就会显得很昏暗.在unity中提供了三种不同的光源类型:点光源,聚光灯,平行光. 点光源 顾名思义,点光源是从一个点向周围散发出光的光源,就像电灯一样.创建点光源在hierarchy视图中点击create--point light: 创建完以后,点击点光源对象,在右侧inspector视图中可以看到点光源的所有信息: type:光源的类型.有point(点光源),directional

【Unity 3D】学习笔记四十五:游戏实例——击垮围墙

用这个游戏实例来总结之前我们复习的所有关于物理引擎的知识.在游戏中,发送一个球形的炮弹来击垮前面的墙.给炮弹与墙都添加了刚体组件,给炮弹绑定了粒子系统,并且在炮弹的粒子动画中添加了5组不同的颜色,显示移动轨迹. using UnityEngine; using System.Collections; public class Script_06_14 : MonoBehaviour { //炮弹对象 private GameObject obj; //准心贴图 public Texture te

【Unity 3D】学习笔记三十三:游戏元素——天空盒子

天空盒子 一般的3D游戏都会有着北京百年一遇的蓝天,让人惊叹不已.其实天空这个效果没有什么神秘的只需用到天空盒子这个组件就行,可以将天空设想成一个巨大的盒子,这个盒子将整个游戏视图和所有的游戏元素包含其中.在unity中制作天空盒子非常方便,只需要像设置其他组件一样设置下就行了.在制作天空盒子之前,我们需要搜集一些天空的贴图,不过,unity很方便的为开发者提供了天空盒子的资源包.首先在project视图中点击鼠标右键,然后选择import package--skyboxes即可添加天空盒子的资

【Unity 3D】学习笔记三十一:游戏元素——地形元素

地形元素 一般情况下,为了使游戏更具有美观性,会在游戏地形上放置很多的元素,这些元素是与地形分开的.主要包括:树木,草地,自定义网格模型. 树元素 首先导入系统提供的树木标准资源包,在project视图中,点击鼠标右键,然后从菜单中选择import-----tree creator.接着在地形菜单里点击第五个按钮,添加树模型.然后点击edit trees按钮,将弹出如下列表: add tree:添加一个树模型 edit tree:编辑一个树模型 remove tree:删除树模型 点击add t

angular学习笔记(三十)-指令(5)-link

这篇主要介绍angular指令中的link属性: link:function(scope,iEle,iAttrs,ctrl,linker){ .... } link属性值为一个函数,这个函数有五个参数:scope,iEle,iAttrs,ctrl,linker scope:指令所在的作用域,这个scope和指令定义的scope是一致的.至于指令的scope,会在讲解scope属性的时候详细解释 iEle:指令元素的jqLite封装.(也就是说iEle可以调用angular封装的简版jq的方法和属