[U3D] 2D斜45°地图构建记录

这篇博客记录了在Unity3D中创建2D斜45°地图的过程,包括SoMap.cs数据类、MapView.cs和TileView.cs的使用,以及编辑器脚本MapViewEditor.cs和TileViewEditor.cs的功能介绍。通过添加MapView组件,设置地图属性,生成并编辑地图块,然后保存和加载地图数据,实现地图编辑与数据持久化。
摘要由CSDN通过智能技术生成

关于实现一个简单的2D斜45°地图的构建记录。

数据类: SoMap.cs

用于存储构建出来的地图.

using UnityEngine;

public class SoMap : ScriptableObject
{
    public int mapID;

    public Vector2 worldPos;// 在世界坐标中的位置

    public float tileWidth;// 块的宽度
    public float tileHeight;// 块的高度

    public int row;// 地图行数
    public int column;// 地图列数

    public int[] data;// 具体数据
}

编辑时显示编辑内容的一个Mono类: MapView.cs

地图相关数据, 挂在一个Go上.

using System.Collections.Generic;
using UnityEngine;

public class MapView : MonoBehaviour
{
    public int mapID;

    public int row;
    public int column;

    public float tileWidth;
    public float tileHeight;

    public int[] data;

    [HideInInspector]
    public int newRow;

    [HideInInspector]
    public int newColumn;

    [HideInInspector]
    public List<GameObject> tileList = new List<GameObject>();

    public Sprite texture_Walkable;
    public Sprite texture_Block;

    private void OnDestroy()
    {
        texture_Walkable = null;
        texture_Block = null;
    }
}

每个地图块的数据编辑类: TileView.cs

using UnityEngine;

public class TileView : MonoBehaviour
{
    [HideInInspector]
    public MapView mapView;

    public int index;
    public int id;
}

---------------------------------- 以下是编辑器脚本类 ------------------------------------

用于编辑MapView的编辑器脚本: MapViewEditor.cs

using UnityEngine;
using UnityEditor;
using System.IO;

[CustomEditor(typeof(MapView))]
public class MapViewEditor : Editor
{
    // 数据存储路径
    public static string DATA_ABS_PATH;
    public static string DATA_ASSETS_PATH;

    private SoMap m_SoMap;

    private void OnEnable()
    {
        MapView _view = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值