unity-使用 Camera 和 Render Texture 制作小地图
使用 Render Texture 和 Camera 制作小地图(MinMap)
效果图
思路:
- 增加一个 摄像机A(Camera),将 摄像机A 所看到的画面 绘制在一张 贴图B(Render Texture)上
- UI Canvas 上创建一个 Raw Image ,在 Raw Image 组件上贴上 贴图B
摄像机 详解
1. 创建环境
创建一个 环境如下,地面、绿方(IgnoreCube)、绿圆(Shpere)、红方(Cube)
然后创建一个空对象 MinMap_Camera,并挂上组件 Camera,把 MinMap_Camera 放在 Cube 下作为 子节点(跟随 Cube 移动)
2. 创建一个用来存放 MinMap_Camera 中的摄像机所看到画面的 贴图(Render Texture)
直接在 Project 窗口,右键 Create -> Render Texture,命名为 MinMap
MinMap_Camera 的 Camera 组件中指定这个 Render Texture
- 官网 Render Texture:https://docs.unity3d.com/Manual/class-RenderTexture.html
3. 创建绘制这个 MinMap 的 UI
直接在场景中创建一个 Raw Image 对象,并在 Raw Image 组件中指定这个 MinMap
基本就ok了
done
为啥 MinMap 中看不到 绿方(IgnoreCube) 呢
因为新加了一个 Layer,把绿色方块指定这个 Layer ,并在 摄像机 中忽略这个 Layer
- 创建新 Layer
Edit -> Project Settings -> Tags And Layers
新加一个 Layer : MyIgnore
- 绿色放开指定这个 Layer
- 摄像机中忽略这个 Layer,取消勾选 MyIgnore 即可
- 创建新 Layer