首页 > 其他分享 >Unity编辑模式 一键获取Tilemap的格子信息

Unity编辑模式 一键获取Tilemap的格子信息

时间:2023-07-22 14:56:05浏览次数:35  
标签:tilemap sprite Tilemap 一键 pos Unity TilemapTool var

动机

由于地图是使用unity tilemap编辑的,服务端也希望获取一份相关的信息。相较于自己写个编辑器,直接利用unity的能力会更加敏捷

效果展示

只需要将组件拖拽到含有Tilemap组件的GameObj上面,就可以点击按钮,获取格子信息。

源码展示

[CustomEditor(typeof(TilemapTool))]
[CanEditMultipleObjects]
public class TilemapToolEditor : Editor
{
    //TODO 水篇博客
    public override void OnInspectorGUI()
    {
        TilemapTool tilemapTool = (TilemapTool)target;
        GUILayout.Label("Draw your inspector here");
        if (GUILayout.Button("Press Me"))
        {
            var tilemap = tilemapTool.GetComponent<Tilemap>();

            var bound = tilemap.cellBounds;

            foreach(var pos in bound.allPositionsWithin)
            {
                var sprite = tilemap.GetSprite(pos);

                if(sprite != null)
                    Debug.Log($"{pos}  {sprite.name}");
            }
            

        }

    }
}

标签:tilemap,sprite,Tilemap,一键,pos,Unity,TilemapTool,var
From: https://www.cnblogs.com/dewxin/p/17573309.html

相关文章

  • 写shell脚本一键编译安装MySQL
    一键编译安装MySQL的Shell脚本在Linux系统中,MySQL是一个非常常见的数据库管理系统。它提供了强大的功能和可靠的性能,因此在许多应用程序中被广泛使用。为了在Linux系统上运行MySQL,我们需要先进行编译安装。为了简化这个过程,我们可以编写一个Shell脚本来自动完成MySQL的编译和安装......
  • Unity3D 播放运行时游戏对象往上飞了
    我的原因是不小心给主摄像机(MainCamera)添加了刚体(Rigidbody)组件,导致播放运行时摄像机受重力作用往下掉,造成游戏(Game)视图窗口内看见的游戏对象往上飞了!如下图所示: 把挂在摄像机的上刚体(Rigidbody)组件移除即可!~......
  • Unity UGUI的VerticalLayoutGroup(垂直布局)组件的介绍及使用
    UnityUGUI的VerticalLayoutGroup(垂直布局)组件的介绍及使用1.什么是VerticalLayoutGroup组件?VerticalLayoutGroup是UnityUGUI中的一种布局组件,用于在垂直方向上自动排列子对象。它可以根据子对象的大小和布局设置,自动调整子对象的位置和大小,实现垂直布局效果。2.VerticalLay......
  • Unity UGUI的VerticalLayoutGroup(垂直布局)组件的介绍及使用
    UnityUGUI的VerticalLayoutGroup(垂直布局)组件的介绍及使用1.什么是VerticalLayoutGroup组件?VerticalLayoutGroup是UnityUGUI中的一种布局组件,用于在垂直方向上自动排列子对象。它可以根据子对象的大小和布局设置,自动调整子对象的位置和大小,实现垂直布局效果。2.VerticalLayo......
  • Unity 网络编程-正确收发数据流
    1.TCP数据流我们知道在使用Socket网络程序时,操作系统会将数据存到发送接收缓存中。程序不能直接操作它们,只能通过socket.Receive,socket.Send等方法来间接操作。在使用以上方法时,如果接收缓存为空,那Receive方法会阻塞。如果发送缓存满了则Send方法会阻塞。粘包半......
  • unity打开内置网页(UniWebView插件)
    UniWebView支持IOS和安卓,window不行UniWebView5|网络|UnityAssetStore安卓demo场景打包就能用,IOS可能得改下配置url必须加协议前缀http://、https:// ......
  • Unity UGUI的AspectRatioFitter(宽高比适应器)组件的介绍及使用
    UnityUGUI的AspectRatioFitter(宽高比适应器)组件的介绍及使用1.什么是AspectRatioFitter组件?AspectRatioFitter(宽高比适应器)是UnityUGUI中的一个组件,用于控制UI元素的宽高比例,使其能够根据父容器的大小进行自适应调整。2.为什么要使用AspectRatioFitter组件?AspectRatioFitte......
  • Unity UGUI的ContentSizeFitter(内容尺寸适应器)组件的介绍及使用
    UnityUGUI的ContentSizeFitter(内容尺寸适应器)组件的介绍及使用1.什么是ContentSizeFitter组件?ContentSizeFitter是UnityUGUI中的一个组件,用于自动调整UI元素的大小,以适应其内容的大小变化。它可以根据内容的大小自动调整UI元素的宽度和高度,确保内容不会被截断或溢出。2.Cont......
  • unity3d unitywebrequest
    Unity3D中的UnityWebRequest是用于发送HTTP请求和处理HTTP响应的类。它提供了一种方便的方式来从服务器获取数据,例如从Web服务器的数据库中检索数据,并通过HTTP请求将数据发送回Unity3D应用程序。使用UnityWebRequest类,您可以执行以下操作:创建请求:您可以使用UnityWebRequest类......
  • java怎么一键替换
    标题:Java一键替换操作详解1.问题概述在Java编程中,有时我们需要对字符串中的某些特定内容进行替换,例如将一个字符串中的所有"a"替换为"b"。本文将详细介绍如何使用Java实现一键替换功能。2.方法一:使用String类的replace方法Java中的String类提供了replace方法用于替换字符串中......