Cmaera圆形小地图
来源:互联网 发布:个人简介html源码 编辑:程序博客网 时间:2024/04/30 20:05
原文地址:http://ningtukun.blog.163.com/blog/static/1865414452012711103013811/
在主摄像机的基础上,多新建一个摄像机,命名为minmap_Camera,在其层次面板上,把Projection选项改为orthographic
在project板面上右键新建一个Render Texture,命名为minmap,并拖动到 minmap_Camera 的层次面板Target Texture中
写脚本minmap.cs
using UnityEngine;
using System.Collections;
public class minmap: MonoBehaviour
{
public GameObject hero;//主角
public float walkDistance = 1;//俯视摄像机离主角身后的距离
public float height = 1;//俯视摄像机离主角的高度
public RenderTexture minmap_texture;
public Material minmap_material;
private GameObject minmap_Camera;
public float offset;
void Awake()
{
minmap_Camera = GameObject.Find("minmap_Camera"); ; //储存俯视摄像机
hero = GameObject.Find("hero");//储存主角
offset = 10;
}
void Start()
{
//找不到主角
if (hero == null)
{
Debug.Log("minmap's hero is gone!");
return;
}
else
Camerafowller();
}
void OnGUI()
{
if (Event.current.type == EventType.Repaint)
{
Graphics.DrawTexture(new Rect(Screen.width-256-offset,offset,150,150),
minmap_texture,minmap_material);
}
}
void Update()
{
Camerafowller();
}
//保证俯视摄像机时刻跟随着主角
public void Camerafowller()
{
minmap_Camera.transform.position = new Vector3(hero.transform.position.x, hero.transform.position.y + height,
hero.transform.position.z - walkDistance);
minmap_Camera.transform.LookAt(hero.transform);
}
}
将它拖到minmap_Camera中
新建一个平面,命名为minmap_Plane
拖动minmap到minmap_Plane,并在 minmap_Camera 的层次面板把X,Y,W,H设为0,0,1,1.这是应该会看到minmap_Plane呈现出场景的一角
这时,在project板面上右键新建一个shader,命名为MaskShader,双击MaskShader打开编辑器
写下代码:
Shader "Custom/Mask" {
Properties
{
_MainTex ("Main Texture", 2D) = "white" {}
_Mask("Mask Texture",2D)="white"{}
}
SubShader
{
Tags{"Queue"="Transparent"}
Lighting On
Zwrite off
Blend SrcAlpha OneMinusSrcAlpha
pass
{
SetTexture[_Mask]{combine texture}
SetTexture[_MainTex]{combine texture,previous}
}
}
}
在project板面上查找一个名叫minmap的Materials(材质),在其层次面板上把shader选项改为Custom/Mask,
这时main texture为minmap,mask texture为mask
mask图片大致为这种(PNG)
好啦!现在把要跟随的目标, minmap(Render Texture) ,minmap(Materials)都拖到minmap_Camera的minmap的脚本中,运行即可
0 0
- Cmaera圆形小地图
- [Unity3d]自制圆形小地图
- CEGUI下圆形小地图实现
- Ogre实现圆形小地图,其实和CEGUI无关.
- 简单2步学会Unity3D 游戏圆形小地图!
- 百度地图圆形搜索
- 小地图
- 小地图
- 在地图上画圆形Ajax查询
- 利用SOSO地图API 画圆形
- 《显示小窗口、小地图》
- WOW小地图生成
- cegui游戏小地图
- web地图小试
- 小地图范例
- unity3d小地图代码
- unity3D 小地图
- 小地图的实现
- PHP+Redis的入门操作
- TCP/IP-UDP
- Servlet技术浅析(三)之-----ServletRequest接口和HttpServletRequest接口
- [LCT维护最小生成树 || CDQ分治 || 线段树 并查集 dfs树] Codeforces 603E #334 (Div. 1) E. Pastoral Oddities
- spring的数据库操作问题(具体实例是mybatis)
- Cmaera圆形小地图
- fitSystemWindow的作用
- js自定义分页
- Cassandra+Akka+Spark分布式机器学习架构
- QT实现一条鱼的自由游动
- Java LinkedHashMap工作原理及实现
- typecho 不能上传附件,上传附件失败
- Linux下网卡eth1如何修改为eth0
- leetcode-110. Balanced Binary Tree