【U3D学习】塔防游戏02

1.ContextMenu的使用

ContextMenu用于构造上下文菜单

在附加脚本的inspector(检视面板)。当用户选择上下文菜单时,这个方法将会被执行。

[ContextMenu("a")] 

//创建一个名字为a的上下文菜单,当a被选择时将执行下面的a()方法

void a(){

print("a");

}

2.创建显示土地网格的ContextMenu

当ContextMenu被选择时,开发界面的土地被分为若干块

创建脚本GridMapScript

public static GridMapScript instance=null;

//声明一个类对象供其他类使用

public MapData[,] m_Map;

//声明一个MapData类型的二维数组


void Awake(){

instance=this;

this.BuildMap();

}

//当脚本唤醒时实例化instance,执行方法BuildMap();

[ContextMenu("BuildMap")]

//在上下文菜单中添加一个名为BuildMap的选项,当BuildMap被选择时执行BuildMap方法

void BuildMap(){

MapData=new MapData[MaxSizeX,MaxSizeZ];

//初始化二维数组长度

然后通过循环将MapData每一个元素实例化

找到所有Tag为gridnode(怪物通道)的GameObject然后GetComponent<GridNodeScript>找出其中捆绑的GridNodeScript脚本

m_Map[(int)posX,(int)posZ]通过位置找到对应的二维数组元素,因为网格的Scale为1,所以位置也就是索引值

将对应二维数组元素的typeId设置为对应Tag为gridnode的_mapdata.typeId

}

3.绘制土地的Gizmos

Gizmos.DrawLine(起始位置Vector3,终止位置Vector3)

通过循环绘制出分割土地的所有横线和竖线

Gizmos.DrawCube(中心位置,大小)

通过中心位置和大小绘制出一个实体Cube

通过循环绘制出每一小块土地的Cube

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值