塔防类游戏如何绘制网格地图 (OnDrawGizmos())
来源:互联网 发布:方舟生存进化画面优化 编辑:程序博客网 时间:2024/06/16 09:19
unity中的OnDrawGizmos()方法使我们可以特别方便的绘制网格地图和怪物行进的路线等。
void OnDrawGizmos() { if (!DrawGizmos) return; //计算地图和格子大小 CalculateSize(); //绘制格子 Gizmos.color = Color.green; //绘制行 for (int row = 0; row <= RowCount; row++) { Vector2 from = new Vector2(-MapWidth / 2, -MapHeight / 2 + row * TileHeight); Vector2 to = new Vector2(-MapWidth / 2 + MapWidth, -MapHeight / 2 + row * TileHeight); Gizmos.DrawLine(from, to); } //绘制列 for (int col = 0; col <= ColumnCount; col++) { Vector2 from = new Vector2(-MapWidth / 2 + col * TileWidth, MapHeight / 2); Vector2 to = new Vector2(-MapWidth / 2 + col * TileWidth, -MapHeight / 2); Gizmos.DrawLine(from, to); } foreach (Tile t in m_grid) { if (t.CanHold) { Vector3 pos = GetPosition(t); Gizmos.DrawIcon(pos, "holder.png", true); } } Gizmos.color = Color.red; for (int i = 0; i < m_road.Count; i++) { //起点 if (i == 0) { Gizmos.DrawIcon(GetPosition(m_road[i]), "start.png", true); } //终点 if (m_road.Count > 1 && i == m_road.Count - 1) { Gizmos.DrawIcon(GetPosition(m_road[i]), "end.png", true); } //红色的连线 if (m_road.Count > 1 && i != 0) { Vector3 from = GetPosition(m_road[i - 1]); Vector3 to = GetPosition(m_road[i]); Gizmos.DrawLine(from, to); } } }注:通过这种方法绘制的网格地图只能在编辑器模式下看见
阅读全文
1 0
- 塔防类游戏如何绘制网格地图 (OnDrawGizmos())
- 手机游戏地图绘制软件
- J2ME高速游戏地图绘制经验
- 【转】J2ME高速游戏地图绘制经验
- 绘制简单的游戏地图并运行
- android osmdroid 加载离线地图map格式以及地图网格绘制
- 【HGE 教程04】游戏地图绘制 平面地图
- 【HGE 教程04】游戏地图绘制 斜面地图
- JavaFX战旗类游戏开发 第二课 游戏地图绘制
- 如何在opengl/opengles里面绘制网格坐标系
- OnDrawGizmos函数
- 如何在R中绘制热力地图
- 标注绘制线路时如何移动地图?
- WPF中绘制网格
- 用R绘制网格
- c# 绘制网格
- canvas绘制网格
- Canvas绘制网格
- Find K Min
- 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 I. Barty's Computer(哈希||字典树)
- Centos安装redis
- poj3352 Road Construction 边双连通分量tarjan算法
- Nginx的优缺点
- 塔防类游戏如何绘制网格地图 (OnDrawGizmos())
- ubuntu16.04 安装jre
- SublimeText3最新版注册码
- 剑指offer 二叉搜索树的后序遍历序列
- 表篇(一)----顺序表的创建与使用(C语言版)
- 141. Linked List Cycle
- java设计模式之外观模式
- POJ 2417 Discrete Logging bsgs算法模板题
- 《Effective C++》读后总结(一)视C++为一个语言联邦