参考网站:https://blog.csdn.net/pz789as/article/details/79540890

tilemap大小设置

方法1:

    

Grid的Cell Size = 图片像素 * 0.01   同时图片的Pixels Per为100

方法2:

Grid的Cell Size 为 1 ,图片的Pixels Per = 图片像素宽高

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Tilemaps; public class CreateTileMap : MonoBehaviour { public Tilemap tilemap;//引用的Tilemap
public Tile baseTile;//使用的最基本的Tile,我这里是白色块,然后根据数据设置不同颜色生成不同Tile
Tile[] arrTiles;//生成的Tile数组
void Awake()
{
//ins = this;
}
void Start()
{
StartCoroutine(InitData());
}
void Update()
{
//销毁墙体
if (Input.GetMouseButtonDown())
{
Vector3 mousePosition = Input.mousePosition;
Vector3 wordPosition = Camera.main.ScreenToWorldPoint(mousePosition);
Vector3Int cellPosition = tilemap.WorldToCell(wordPosition);
//tilemap.SetTile(cellPosition, gameUI.GetSelectColor().colorData.mTile);
TileBase tb = tilemap.GetTile(cellPosition);
if (tb == null)
{
return;
}
//tb.hideFlags = HideFlags.None;
Debug.Log("鼠标坐标" + mousePosition + "世界" + wordPosition + "cell" + cellPosition + "tb" + tb.name);
//某个地方设置为空,就是把那个地方小格子销毁了
tilemap.SetTile(cellPosition, null);
//tilemap.RefreshAllTiles();
} //空白地方创造墙体
if (Input.GetMouseButtonDown())
{
Vector3 mousePosition = Input.mousePosition;
Vector3 wordPosition = Camera.main.ScreenToWorldPoint(mousePosition);
Vector3Int cellPosition = tilemap.WorldToCell(wordPosition);
//tilemap.SetTile(cellPosition, gameUI.GetSelectColor().colorData.mTile);
TileBase tb = tilemap.GetTile(cellPosition);
if (tb != null)
{
return;
}
//tb.hideFlags = HideFlags.None;
//Debug.Log("鼠标坐标" + mousePosition + "世界" + wordPosition + "cell" + cellPosition + "tb" + tb.name);
//格子填充
tilemap.SetTile(cellPosition, baseTile);
//tilemap.RefreshAllTiles();
}
} /// <summary>
/// 地图生成
/// </summary>
/// <returns></returns>
IEnumerator InitData()
{
//大地图宽高
int levelW = ;
int levelH = ; int colorCount = ;
arrTiles = new Tile[colorCount];
for (int i = ; i < colorCount; i++)
{
//想做生命墙,需要自己做个数据层,对应索引id就行
arrTiles[i] = ScriptableObject.CreateInstance<Tile>();//创建Tile,注意,要使用这种方式
arrTiles[i].sprite = baseTile.sprite;
arrTiles[i].color = new Color(Random.Range(0f, 1f), Random.Range(0f, 1f), Random.Range(0f, 1f), );
}
for (int i = ; i < levelH; i++)
{//这里就是设置每个Tile的信息了
for (int j = ; j < levelW; j++)
{
tilemap.SetTile(new Vector3Int(j, i, ), arrTiles[Random.Range(, arrTiles.Length)]);
}
yield return null;
} while (true)
{
yield return new WaitForSeconds();
// int colorIdx = Random.Range(0, colorCount);//前面这个是随机将某个块的颜色改变,然后让Tilemap更新,主要用来更新Tile的变化
// arrTiles[colorIdx].color = new Color(Random.Range(0f, 1f), Random.Range(0f,1f), Random.Range(0f, 1f), 1);
// tilemap.RefreshAllTiles(); Color c = tilemap.color;//这里是改变Tilemap的颜色,尝试是否可以整体变色
c.a -= Time.deltaTime;
tilemap.color = c;
}
} }

unity2018使用tileMap生成地图 类似泰拉瑞亚创建和销毁地图块的更多相关文章

  1. 泰拉瑞亚Linux主机打造指南

    最近玩了泰拉瑞亚,一个2D版的我的世界,但苦于steam的联机太过不靠谱,经常会出现和朋友之间联机失败的问题,所以我把服务器放到了部署我博客的服务器,这样就可以通过IP直接让好友加入游戏了! 首先是购 ...

  2. Terraria(泰拉瑞亚)存档覆盖(Linux)

    这是一篇关于游戏的不正经博客 ~ 游戏介绍: <泰拉瑞亚>是由Re-Logic公司开发的一款高自由度的沙盒游戏,于2011年5月16日在PC上发行. 玩家可以在游戏中做很多事情:制造武器战 ...

  3. [百度地图] 用于类似 DWZ UI 框架的 百度地图 功能封装类 [MultiZMap.js] 实例源码

    MultiZMap 功能说明 MultiZMap.js 本类方法功能大多使用 prototype 原型 实现,它是 ZMap 的多加载版本,主要用于类似 DWZ 这个 多标签的 UI 的框架: 包含的 ...

  4. 创建用户故事地图(User Story Mapping)的8个步骤

    [小编]上周六了解了用户故事地图后,小编又查阅了一些资料,找到了以下这篇关于如何组织用户故事地图规划的文章,分享给大家.也希望大家如果有好的实践,也可以留言一起交流. 原文地址:http://winn ...

  5. MATLAB地图工具箱学习总结(三)地图工具箱的基本知识

    MATLAB地图工具箱学习总结(三)地图工具箱的基本知识 今天想要介绍的是一些比较基础的函数.了解了这些函数,地图投影的基本概念才能真正明白.而要想继续研究MATLAB中有关地图投影的函数,尤其是未来 ...

  6. 【高德地图API】如何打造十月妈咪品牌地图?

    原文:[高德地图API]如何打造十月妈咪品牌地图? 摘要:品牌地图除了地图,商铺标点外,还有微博关注,路线查询等功能. ---------------------------------------- ...

  7. 【百度地图API】如何利用PhoneGap制作地图APP

    原文:[百度地图API]如何利用PhoneGap制作地图APP 摘要:百度地图API是一套由javascript编写的地图程序接口,按说它应该运行在浏览器上.现在,只要利用PhoneGap,我们就能开 ...

  8. 如何利用【百度地图API】,制作房产酒店地图?(下)——结合自己的数据库

    原文:如何利用[百度地图API],制作房产酒店地图?(下)--结合自己的数据库 摘要:应广大API爱好者要求,写了一篇利用自己数据库标点的文章…… -------------------------- ...

  9. 【百度地图API】你看过房产地图吗?你知道房产标注是如何建立的吗?

    原文:[百度地图API]你看过房产地图吗?你知道房产标注是如何建立的吗? 你是不是看过很多房产网站?例如安居客,新浪乐居. 你是不是也想做一个能写文字的标注? 你知道怎么去实现麼? 其实,上图这样的标 ...

随机推荐

  1. SQL存储原理及聚集索引、非聚集索引、唯一索引、主键约束的关系(补)

    索引类型 1.          唯一索引:唯一索引不允许两行具有相同的索引值 2.          主键索引:为表定义一个主键将自动创建主键索引,主键索引是唯一索引的特殊类型.主键索引要求主键中的 ...

  2. 负载均衡-会话保持,session同步(转载)

    一,什么负载均衡一个新网站是不要做负载均衡的,因为访问量不大,流量也不大,所以没有必要搞这些东西.但是随着网站访问量和流量的快速增长,单台服务器受自身硬件条件的限制,很难承受这么大的访问量.在这种情况 ...

  3. Java中String、StringBuffer和StringBuilder之间的区别

    String在Java中是字符串常量 例如 String str = "abc"; str = str + 1; System.out.println(str); 结果将是abc1 ...

  4. winfrom 右下角弹窗(渐渐消失)

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  5. Django Meta

    Available Meta options abstract 如果为True,这个model就是抽象类 app_label 如果模型是在INSTALLED_APPS中的应用程序之外定义的,它必须声明 ...

  6. 参照跟老男孩学linux运维搭建nagios实验小结

        nagios效果示例 http://192.168.0.236/nagios       用户名:hong     密码:123   一. 服务端安装准备   1. 更新源 cd /etc/y ...

  7. nginx负载均衡配合keepalived服务案例实战

    本实验用4台 centos6 虚拟机,2台做负载均衡,2台做web服务器,都先装上nginx lb01:192.168.0.235  --主负载均衡器 lb02:192.168.0.236  --备负 ...

  8. NSUserDefault存储类

    类要实现NSCoding协议 实现encodeWithCoder和initWithCoder方法 先把类的instance archive成NSData,然后存起来 TGTest *tt = [TGT ...

  9. POJ2279 Mr Young's Picture Permutations

    POJ2279 Mr Young's Picture Permutations 描述: 有N个学生合影,站成左对齐的k排,每行分别有N1,N2…NK个人,第一排站最后,第k排站之前.学生身高依次是1… ...

  10. django 后台格式化数据库查询出的日期

    在项目中,我遇到这样的情况,使用ajax获取查询出来的数据,而这些数据中某个字段是日期datetime格式,在模板中显示的样式很怪异.由于前端使用了js控件,也不能使用django的模板过滤器. 所以 ...