如何用unity3d 场景做场景地图

Unity3D——使用UGUI制作小地图 - 简书
下载简书移动应用
写了6234字,被9人关注,获得了9个喜欢
Unity3D——使用UGUI制作小地图
UGUI制作小地图的方法和NGUI也没多大区别,同样是通过Camera+RenderTexture来实现。细节方面的美化可以自行通过美工来完善。为了更好的适应新的UI系统,学习NGUI之余也使用UGUI来制作同样效果的东西。
首先,我们创建一个Camera对象,改名为MiniMapCamera,设置Rotation让其视野朝下,面向地面,修改Projection为Orthographic。通过Size来调整摄像机高度。
然后,Create——UI——RawImage,生成Canvas和RawImage,在Canvas下创建一个空物体叫做MiniMap,然后在MiniMap下创建一个Image对象,并给Image对象添加Mask组件(达到圆形效果),修改Image对象名字为Mask,修改组件Image的SourceImage为Knob(Unity自带圆形Image)将RawImage拖拽到Mask下。
接下来,在Pojects面板内创建一个RenderTexture,并将其拖拽到MiniMapCamera的TargetTexture中。设置RawImage的对象为该Texture。此时便能有一个初步的小地图了。
为了美化这个简陋的小地图,我们可以在MiniMap下再添加一个RawImage,选择一个喜欢的图作为遮罩,确保该RawImage排在Mask下,这样便能覆盖Mask作为外遮罩对象。然后修改MiniMapCamera的CulingMask来选择小地图能看见的层。具体细节可以按自己的喜好来调节。
这样小地图便完成了,给上一个DIY效果图(依旧是官方案例作为素材)。
如果您觉得文章对您有帮助,请随意打赏一块铜板,支持我的创作~
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
如果您觉得文章对您有帮助,请随意打赏一块铜板,支持我的创作~
选择支付方式:本文所属图书&>&
本书以实例教学为主线,循序渐进地介绍了Unity在游戏开发方面的不同功能。第1章,由零开始,引导读者熟悉Unity编辑器的各个功能模块,这部分内容对Unity程序员、美工和策划都有帮助。第2~4章是3个不同特色的3D游&&
现在的游戏已经有模有样,但因为四面八方都是敌人,我们在游戏的时候可能搞不清敌人都在哪里,最后我们将为游戏添加一个小地图,用来查看敌人的位置。
在菜单栏选择【GameObject】&【Create Other】&【Camera】创建一个新的摄像机,它将作为小地图的专用摄像机。调整它的位置,使其在场景上方垂直向下,然后将其设置为Orthographic,取消透视并调整Size的值改变视图大小,设置Viewport Rect改变摄像机显示区域的位置和大小,如图3-22所示。
运行游戏,屏幕的右上方即会出现一个小地图,但根本看不清里面的东西,可能位置也不正确,如图3-23所示。
现在的小地图摄像机与正常摄像机的显示是一样的,只不过它是从上向下看。接下来,我们要做的是使小地图摄像机与主摄像机只专注显示自己需要的东西,并通过脚本使小地图摄像机的视图无论在何种分辨率下永远是一个正方形。
创建一个球体,命名为dummy,将其材质设为红色Self-Illumin/Diffuse,它将作为敌人的&代替体&,只能显示在小地图之中,并不能在主摄像机视图显示出来。将球体的Sphere Collider去掉,如图3-24所示,我们只需要它的显示功能。
创建一个新的Layer,命名为dummy,并设置球体的Layer为dummy。
将球体置于敌人Prefab的层级之下,这样它会随着敌人的移动而移动,如图3-25所示。
选择主摄像机,取消显示dummy层,球体在主摄像机视图中将不会被显示出来,如图3-26所示。
选择小地图摄像机,使其只显示level和dummy层,这样在小地图中只能看到场景和球体,如图3-27所示。
使用相同的方法为主角也创建一个&代替体&,可以为其指定与敌人不同的颜色。
创建脚本MiniCamera.cs,将其指定给小地图摄像机,添加代码如下:
using UnityE
using System.C
[AddComponentMenu(&Game/MiniCamera&)]
public class MiniCamera : MonoBehaviour {
// Use this for initialization
void Start () {
& & & & // 获得屏幕分辨率比例
& & & & float ratio = (float)Screen.width / (float)Screen.
& & & & // 使摄像机视图永远是一个正方形, rect的前两个参数表示XY位置,后两个参数是XY大小
& & & & this.camera.rect = new Rect((1 - 0.2f), (1 - 0.2f * ratio), 0.2f, 0.2f * ratio);
这里的代码很简短,主要是使小地图摄像机的视图永远是一个正方形。
因为主摄像机上已经有一个Audio Listener,同一个场景中只允许存在一个该,所以要取消选中(或删除)小地图摄像机的【Audio Listener】,如图3-28所示。
运行游戏,最后的效果如图3-29所示。如果希望继续改进小地图的显示,还可以为场景专门制作一个用于小地图显示的模型。
本章的示例工程文件保存在资源文件目录chapter03_FPS中。在资源文件目录build\fps下保存有已经编译好的版本,可以直接运行游戏。
您对本文章有什么意见或着疑问吗?请到您的关注和建议是我们前行的参考和动力&&
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
您的浏览器不支持嵌入式框架,或者当前配置为不显示嵌入式框架。
(window.slotbydup=window.slotbydup || []).push({
id: '2467142',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'

我要回帖

更多关于 unity3d 场景 的文章

 

随机推荐