天空盒子

一般的3D游戏都会有着北京百年一遇的蓝天。让人惊叹不已。事实上天空这个效果没有什么神奇的仅仅需用到天空盒子这个组件即可。能够将天空设想成一个巨大的盒子,这个盒子将整个游戏视图和全部的游戏元素包括当中。

在unity中制作天空盒子非常方便,仅仅须要像设置其它组件一样设置下即可了。在制作天空盒子之前。我们须要搜集一些天空的贴图。只是。unity非常方便的为开发人员提供了天空盒子的资源包。首先在project视图中点击鼠标右键。然后选择import package——skyboxes即可加入天空盒子的资源包。

在资源包里有9个天空资源。由于天空盒子是立方体的。全部就须要6个面的贴图,如图选择第一个。在右側inspector视图中就会显示 天空盒子6个面的贴图:

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

skybox组件

由于摄像机的正面是游戏显示的内容。所以在摄像机上绑定一个skybox组件用来显示天空盒子贴图。首先在hierarchy视图中选择摄像机对象。然后在导航菜单条中选择component——rendering——skybox。就可以将盒子加入到摄像机对象中。接着在盒子组件中设置custom skybox(自己定义天空盒子)贴图资源。点击右側的button。在弹出选择天空盒子贴图的窗体中选择一款贴图加入,然后执行,漂亮的天空就会出如今你的视线中。

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

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

在场景中加入天空盒子

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

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

自行加入天空盒子材质

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

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

  1. Unity 3D学习笔记(三)——关于脚本

    在脚本中定义的类成员,如果是公共的话,在脚本与游戏对象绑定之后,是可以在Inspector中编辑的,例如下面这个脚本: using UnityEngine; using System.Collecti ...

  2. unity 3D 学习笔记

    1.父对象的初始位置设,即刚开始的空对象的根节点位置应当设置成(0,0,0) 这样设置可以避免以后出现奇怪的坐标. GameObject实际上就是一些组件的容器. unity 使用公用变量原因是,在U ...

  3. HTML5学习笔记三:aside元素,time元素与微格式

    一.aside元素 表示当前页面或文章的附属信息部分,相关的引用,侧边栏,广告等有别于主要内容的部分:主要有一下两种用法: 1. 被包含在article元素中作为主要内容的附属信息部分,可以是与当前文 ...

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

    <?php //自定义错误处理器 //$errorno 错误号 //$errmes错误信息 //这两个参数是必须的 function my_error($errorno,$errmes) { e ...

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

    原博主博客地址:http://blog.csdn.net/qq21497936本文章博客地址:http://blog.csdn.net/qq21497936/article/details/78516 ...

  6. [Firefly引擎][学习笔记三][已完结]所需模块封装

    原地址:http://www.9miao.com/question-15-54671.html 学习笔记一传送门学习笔记二传送门 学习笔记三导读:        笔记三主要就是各个模块的封装了,这里贴 ...

  7. VSTO 学习笔记(十三)谈谈VSTO项目的部署

    原文:VSTO 学习笔记(十三)谈谈VSTO项目的部署 一般客户计算机专业水平不高,但是有一些Office水平相当了得,尤其对Excel的操作非常熟练.因此如果能将产品的一些功能集成在Office中, ...

  8. angular学习笔记(三十一)-$location(2)

    之前已经介绍了$location服务的基本用法:angular学习笔记(三十一)-$location(1). 这篇是上一篇的进阶,介绍$location的配置,兼容各版本浏览器,等. *注意,这里介绍 ...

  9. angular学习笔记(三十)-指令(10)-require和controller

    本篇介绍指令的最后两个属性,require和controller 当一个指令需要和父元素指令进行通信的时候,它们就会用到这两个属性,什么意思还是要看栗子: html: <outer‐direct ...

随机推荐

  1. 洛谷P1908 逆序对

    P1908 逆序对 2.2K通过 4.4K提交 题目提供者该用户不存在 标签云端 难度普及/提高- 时空限制1s / 128MB 提交  讨论  题解 最新讨论更多讨论 归并排序党注意了!数组要开… ...

  2. 【2019.3.2】NOI 模拟赛

    题目 题解(有些小错误) H老爷的简短题解 请无视题目 $pdf$ 的第二行,信那句话的人都已经上清华了 听说大老爷切了 $250+$ 分,然后发现是两个人分着写三道题的,然后第一题还流假了…… $x ...

  3. 2010年最佳jQuery插件

    原文发布时间为:2011-01-19 -- 来源于本人的百度文章 [由搬家工具导入] WDL的作者从大量的优秀jQuery插件精心筛选出一些对Web Designers有帮助的和具备非常不错的视觉效果 ...

  4. StringTokenizer:字符串分隔用法简介

    StringTokenizer:字符串分隔解析类型 属于:java.util包. 1.构造函数. 1. StringTokenizer(String str) :构造一个用来解析str的StringT ...

  5. android中与Adapter相关的控件----GridView

    GridView(网格视图)讲解 一.GridView(网格视图)这个是控件也是比较多,和listView的很多地方都是一样的,但是GridView可以显示多列,而listView只能显示一列,个人觉 ...

  6. jdk、maven、tomcat环境变量配置

    1.jdk 新建环境变量: JAVA_HOME:C:\Program Files\Java\jdk1.8.0_91 CLASSPATH:.;%JAVA_HOME%\lib;%JAVA_HOME%\li ...

  7. map、hash_map、unordered_map 的思考

    #include <map> map<string,int> dict; map是基于红黑树实现的,可以快速查找一个元素是否存在,是关系型容器,能够表达两个数据之间的映射关系. ...

  8. Python Challenge 第十关

    第十关是一张牛的图片和一行字:len(a[30])=?.图片中的牛是一个链接,点开后进入一个新页面,只有一行字: a = [1, 11, 21, 1211, 111221, 看来要知道第31个数多长, ...

  9. Apache/Nginx为PHP设置、添加$_SERVER服务器环境变量

    在PHP开发中为了区分线上生产环境还是本地开发环境, 如果我们能通过判断$_SERVER['RUNTIME_ENVIROMENT']为 'DEV'还是'PRO'来区分该多好, 可惜的是$_SERVER ...

  10. C# 基础练习题

    (一)循环 1.打印输出 5 个"Hello world!" ////输出 5 个"Hello world!" for (int i = 0; i < 5 ...