参考网站: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. centos7 编译安装nginx

    转载文章 原文地址 https://www.cnblogs.com/liujuncm5/p/6713784.html 安装所需环境 Nginx 是 C语言 开发,建议在 Linux 上运行,当然,也可 ...

  2. 19、Semantic-UI之图片的动画效果

      在Semantic-UI中定义了很多图片动画效果,可以直接使用. 示例:定义图片动画 <!DOCTYPE html> <html lang="en"> ...

  3. 使用 FireMonkey 构建优秀专业 Android 应用的10点提示

    原文链接:http://www.firemonkeyx.com/ten-tips-for-building-stunning-professional-android-apps-with-firemo ...

  4. 读取IE缓存文件

    使用WebCacheTool项目中的WinInetAPI.cs和Win32API.cs两个类 /// <summary> /// 获取IE缓存文件 /// </summary> ...

  5. 启动类加注解@MapperScan spring boot mybatis 启动错误

    Description: Field userDao in com.gcy.springsecuritydemo.service.user.UserService required a bean of ...

  6. 数独·唯一性技巧(Uniqueness)-2

    Hidden Rectangle(隐藏矩形) 在由候选数(AB)组成.可能形成UR结构的4格中,有2-3格存在额外的候选数,此时若以不存在额外候选数的一格为起点,检查其对角格所在的行和列,若该行和列其 ...

  7. 爬虫开发9.scrapy框架之递归解析和post请求

    今日概要 递归爬取解析多页页面数据 scrapy核心组件工作流程 scrapy的post请求发送 今日详情 1.递归爬取解析多页页面数据 - 需求:将糗事百科所有页码的作者和段子内容数据进行爬取切持久 ...

  8. OCP2018最新题库,052新题库及答案整理-25题

    25.Which is true about logical and physical database structures? (Choose the best answer) A. An undo ...

  9. AutoCAD.Net圆弧半径标注延长线

    #region 注册RegApp public static void CheckRegApp(string regapptablename) { Database db = HostApplicat ...

  10. jmeter性能测试指标

    1.jp@gc - Actiive Threads Over Time:不同时间的活动用户数量展示(图表) 当前的时间间隔是1毫秒,在setting中可以设置时间间隔以及其他的参数 2.jp@gc - ...