Unity摄像机的使用一:双游戏地图或设置小地图
2015-05-19 16:56
246 查看
<span style="font-size: 14px; font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">今天学习了一下摄像机的运用,这也是游戏中经常用到的,比如说QQ飞车,穿越火线等 </span>
大体的效果如下图: —_—
下面我们就来看看怎么弄。
首先,这肯定需要两个摄像机,除了Main Camera 之外我们需要新建一个摄像机Camera,显而易见
Camera的视图在Main Camera之上,所以Camera的Depth的值要比Mian Camera 大,我们先让这两个
摄像机看到场景中不同的物体;
下面我们开始写脚本控制:
脚本写好之后把他挂到Camera上
最后通过设置参数达到想要的效果:
当然,如果需要你也可以设置多个视图,只要你不看花眼
大体的效果如下图: —_—
下面我们就来看看怎么弄。
首先,这肯定需要两个摄像机,除了Main Camera 之外我们需要新建一个摄像机Camera,显而易见
Camera的视图在Main Camera之上,所以Camera的Depth的值要比Mian Camera 大,我们先让这两个
摄像机看到场景中不同的物体;
下面我们开始写脚本控制:
using UnityEngine; using System.Collections; public class PictureinPicture : MonoBehaviour { //定义枚举类型 public enum HorizontalAlignment {left, center, right}; public enum VerticalAlignment{top, middle, bottom}; public enum ScreenDimensions{pixels, screen_percentage}; //定义枚举类型的变量 public HorizontalAlignment horizontalAlignment = HorizontalAlignment.left; public VerticalAlignment verticalAlignment = VerticalAlignment.top; public ScreenDimensions dimensions = ScreenDimensions.pixels; public int width = 50; public int height = 50; public float xOffset = 0.0f; public float yOffset = 0.0f; public bool update = true; private int hSize, vSize, hLoc, vLoc; void Start() { AdjustCamera(); } //游戏运行时,每一帧都调用此函数 void Update() { AdjustCamera(); } //游戏对象初始化时,调用此函数 void AdjustCamera() { if (dimensions == ScreenDimensions.screen_percentage) //调节视图为指定百分比大小 { hSize = (int)(width * 0.01f * Screen.width); vSize = (int)(height * 0.01f * Screen.height); } else //调节视图为指定像素大小 { hSize = height; vSize = width; } if (horizontalAlignment == HorizontalAlignment.left) //水平方向上是左对齐 { hLoc = (int)(xOffset * 0.01f * Screen.width); } else if(horizontalAlignment == HorizontalAlignment.right) //水平方向上是右对齐 { hLoc = (int)((Screen.width - hSize) - (xOffset * 0.01f * Screen.width)); } else //水平方向上是居中 { hLoc = (int)((Screen.width - hSize) * 0.5f - (xOffset * 0.01f * Screen.width)); } if (verticalAlignment == VerticalAlignment.top) //垂直方向为顶端 { vLoc = (int)((Screen.height - vSize) - (yOffset * 0.01f * Screen.height)); } else if (verticalAlignment == VerticalAlignment.bottom) //垂直方向为底端 { vLoc = (int)(yOffset * 0.01f * Screen.height); } else //垂直方向为居中 { vLoc = (int)((Screen.height - vSize) * 0.5f - (yOffset * 0.01f * Screen.height)); } this.GetComponent<Camera>().pixelRect = new Rect(hLoc, vLoc, hSize, vSize); } }
脚本写好之后把他挂到Camera上
最后通过设置参数达到想要的效果:
当然,如果需要你也可以设置多个视图,只要你不看花眼
相关文章推荐
- [Unity-14] Unity3d中使用摄像机制作实时显示小地图
- Unity摄像机的使用三:游戏的截图
- Unity实战 RTS3D即时战略游戏开发(八) HUD的使用 小地图显示
- 【Unity 3D游戏开发学习笔记】总结摄像机和光源的使用方法
- Unity 3D在Windows7下使用腾讯云游戏语音Poll无法获得回调问题
- unity 2D 游戏背景无线循环简单使用
- 使用 Unity 3D 开发游戏的架构设计难点
- Unity接入Google Play 游戏-使用play-games-plugin-for-unity
- unity 通过点击游戏小地图,来移动主相机功能实现
- 简单两步使用Unity制作ZigZag游戏
- Unity使用暴风魔镜VR游戏开发
- Unity游戏中使用贝塞尔曲线
- 关于unity中使用Vuforia制作AR场景如何设置自动对焦的问题(全网独家)
- Unity中使用柏林噪声生成地图
- 在unity的游戏视图中使用gizmos工具
- Unity游戏开发--30s制作精美地图
- 将Unity官方射击游戏 Space Shooter 改为实时对战小游戏,使用天梯实时对战服务(NanoLink)
- unity中使用配置文件进行参数设置
- Unity使用代码控制2d游戏物体(一)