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

天空盒子

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

在资源包里有9个天空资源,因为天空盒子是立方体的,所有就需要6个面的贴图,如图选择第一个,在右侧inspector视图中就会显示 天空盒子6个面的贴图:

skybox组件

因为摄像机的正面是游戏显示的内容,所以在摄像机上绑定一个skybox组件用来显示天空盒子贴图。首先在hierarchy视图中选择摄像机对象,然后在导航菜单栏中选择component——rendering——skybox。即可将盒子添加到摄像机对象中。接着在盒子组件中设置custom skybox(自定义天空盒子)贴图资源,点击右侧的按钮,在弹出选择天空盒子贴图的窗口中选择一款贴图添加,然后运行,美丽的天空就会出现在你的视线中。

设置完后,调整下摄像机的位置天空效果如下图:

需要注意的是:如果一个游戏里有一个摄像机对象,这样添加天空盒子是没有问题的,但有多个摄像机对象,在摄像机之间切换后,天空盒子的贴图位置就会出现问题。因为贴图资源只是相对于当前摄像机对象的。那怎么解决多个摄像机中天空盒子的问题咧?看下文。

在场景中添加天空盒子

在游戏场景中直接设置盒子,可避免多个摄像机设置盒子切换后贴图显示问题。首先在导航菜单中选择edit——render setting。打开渲染设置界面,在该界面中的skybox material(天空盒子材质)选项中设置天空的材质,然后将其直接应用与游戏场景中。如此添加就可以避免问题,因为这将是真正的盒子放在游戏界里了。运行后:

自行添加天空盒子材质

开发者可以自行添加盒子的材质已满足不同的需求,首先某材质中,在shader(着色器)下拉列表中选择renderfx/skybox,然后使用贴图资源将六面贴图赋值填充后即可。

【Unity 3D】学习笔记三十三:游戏元素——天空盒子,布布扣,bubuko.com

时间: 2024-10-16 19:50:37

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

Unity 3D学习笔记之一 界面介绍

因为学校的课程,本学期对Unity 3D有学习的要求,在博客中记录下自己的Unity学习之路(内容摘录自书本和视频,书本为Unity 4.x从入门到精通) 一.Unity界面介绍 首先进入Unity3D,在菜单栏,File中new project,选择自己的工作路径初始时我们先默认不引入任何的package. 进入Unity的界面中,先对界面进行一下简要的介绍.区域大致依次分为Hierarchy.Scene.Inspector.Project,和上方的菜单栏(Menu bar)和工具栏(Tool

学习笔记三十三:IO流(四)

一无所有是一种财富,它让穷人产生改变命运的行动. 本讲内容:RandomAccessFile RandomAccessFile是用来访问那些保存数据记录的文件的,你就可以用seek( )方法来访问记录,并进行读写了.这些记录的大小不必相同:但是其大小和位置必须是可知的.但是该类仅限于操作文件. RandomAccessFile不属于InputStream和OutputStream类系的.实际上,除了实现DataInput和DataOutput接口之外(DataInputStream和DataOu

PHP学习笔记三十三【自定义错误处理器】

<?php //自定义错误处理器 //$errorno 错误号 //$errmes错误信息 //这两个参数是必须的 function my_error($errorno,$errmes) { echo "<font size='5' color='red'>$errorno</font><br/>"; echo "错误信息是:$errmes"; } //必须重写set_error_handler处理器 set_error_h

JAVA学习笔记(三十三)- 字节流转换为字符流

将字节流转换为字符流 import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; /* * InputStreamRead

qml学习笔记(二):可视化元素基类Item详解(上半场anchors等等)

原博主博客地址:http://blog.csdn.net/qq21497936本文章博客地址:http://blog.csdn.net/qq21497936/article/details/78516201 qml学习笔记(二):可视化元素基类Item详解(上半场anchors等等) 本学章节笔记主要详解Item元素(上半场主要涉及anchors锚),因为所有可视化的界面元素都继承于Item,熟悉Item后,不同的继承子类,有其定制的属性(从几个到几十个不等). <Qt实用技巧:在Qt Gui程

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

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

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

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

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

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

【Unity 3D】学习笔记三十七:物理引擎——碰撞与休眠

碰撞与休眠 上一篇笔记说过,当给予游戏对象刚体这个组件以后,那么这个组件将存在碰撞的可能性.一旦刚体开始运动,那么系统方法便会监视刚体的碰撞状态.一般刚体的碰撞分为三种:进入碰撞,碰撞中,和碰撞结束.关于休眠可以理解成为让游戏对象变成静止状态.如果给某个游戏对象休眠的状态,那么这个物体将立马静止,不再运动. 碰撞 首先学习下碰撞几个重要的方法: OnCollisionEnter(  ):刚体开始接触的时候,立即调用. OnCollisionStay(  ):碰撞过程中,每帧都会调用此方法,直到撞