参考网站: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. .net 序列化反序列化

    .net 序列化创建对象的深拷贝 public static object DeepClone(object original) { using (MemoryStream stream = new ...

  2. Android-xx倍图

    图片文件夹对应倍图关系: ldpi 0.75 倍图 mdpi   1.0 倍图   hdpi    1.5 倍图 xhdpi  2.0 倍图 xxhdpi    3.0 倍图 xxxhdpi  4.0 ...

  3. C#面向对象:多态

    此文章转载网站:https://www.cnblogs.com/qixinbo/p/8244583.html 多态: 有多态之前必须要有继承,只有多个类同时继承了同一个类,才有多态这样的说法. 在继承 ...

  4. WPF判断当前窗体是否为模态

    WPF判断当前窗体是否为模态   1.使用System.Windows.Interop.ComponentDispatcher.IsThreadModal来判断 参照:https://social.m ...

  5. “全栈2019”Java第二十八章:数组详解(上篇)

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  6. [ActionScript 3.0] 通过BitmapData将对象保存成jpg图片

    此方法需要用到JPGEncoder.as和BitString.as这两个类,是将BitmapData对象转换成ByteArray,然后通过FileStream把此ByteArray写入到文件保存成jp ...

  7. 部署LAMP架构及其应用

    部署企业LAMP架构 (一)首先安装Apache服务,具体请见另一篇关于Apache的博文. (二)安装MySQL数据库,具体请见另一篇关于LNMP的博文. (三)构建PHP运行环境 1.安装PHP ...

  8. JavaScript中setInterval的用法总结

    setInterval动作的作用是在播放动画的时,每隔一定时间就调用函数,方法或对象.可以使用本动作更新来自数据库的变量或更新时间显示. setInterval动作的语法格式如下:setInterva ...

  9. selenium自动加载Flash

    当我们在定位的时候,有时候会碰到Flash问题导致无法定位到元素 通过下面的代码就能解决问题 参考:https://blog.csdn.net/qq_37913997/article/details/ ...

  10. Python2和Python3之间的区别

    编码区别 Python3.X版本中源码文件默认使用的是utf-8编码 Unicode 字符串 Python 2有两种字符串类型:Unicode字符串和非Unicode字符串 Python 3只有一种类 ...