Unity Excel數據導入工具

UnityExcelImporterX - Unity Excel數據導入工具

自動將Excel文件(.xls, .xlsx)中的數據轉換為Unity的ScriptableObject資源。

項目基于unity-excel-importer,增加了一些新特性。項目地址:github.com/nayaku/UnityExcelImporterX

? 核心特性

  • 🤖 零代碼生成:無需手動編寫實體類腳本,自動生成完整代碼
  • 🔄 實時同步:Excel修改后自動更新Unity資源
  • 📝 智能注釋:支持注釋行/列,設置數據邊界
  • 🎯 類型豐富:支持基本類型、枚舉、數組、字典、日期時間和自定義類型
  • 📊 多表支持:一次性導入Excel中的所有工作表

📦 安裝方法

💡 通過 .unitypackage 文件安裝(推薦)
  1. 訪問 GitHub Releases頁面
  2. 下載最新的 .unitypackage 文件
  3. 雙擊文件或在Unity中通過 Assets → Import Package → Custom Package 導入

🚀 快速開始

步驟1:創建Excel文件

創建一個Excel文件,按以下格式組織數據:

行號內容說明示例
第1行列名(字段名)id, name, price
第2行C#數據類型int, string, float
第3行注釋說明編號, 物品名, 售價
第4行+實際數據1, 物品名1, 99.5

📋 示例表格結構:

在這里插入圖片描述

🎯 將Excel文件放入Unity項目的任意文件夾中

步驟2:自動生成代碼

  1. 在Unity中選中Excel文件
  2. 右鍵 → Create → ExcelAssetScript(或在頂部菜單選擇 Assets → Create → ExcelAssetScript
  3. 系統將自動個實體類腳本(如 MstItems.cs

在這里插入圖片描述

📊 生成的代碼示例:

// 實體類 - 對應表格的每一行數據
[Serializable]
public class MstItemsEntity
{/// <summary>/// 編號/// </summary>public int id;           // 自動匹配Excel第1列/// <summary>/// 物品名/// </summary>public string name;      // 自動匹配Excel第2列 /// <summary>/// 售價/// </summary>public float price;      // 自動匹配Excel第3列
}// 容器類 - 存儲所有表格數據
[ExcelAsset]
public class MstItems : ScriptableObject
{public List<MstItemsEntity> Entities;  // 所有行數據
}

?? 重要提醒:當Excel表格結構發生變化時(如添加/刪除列),需要重新執行此步驟生成最新代碼。

步驟3:自動導入數據

💡 只需簡單操作

  • 保存Excel文件(Ctrl+S)
  • 回到Unity,系統將自動檢測變更并導入數據
  • 在相同目錄下會生成與Excel同名的 .asset 文件

如果沒有自動生成,可以手動重新導入Excel文件來觸發自動生成:
在這里插入圖片描述

? 完成! 現在您可以在Unity中直接查看和編輯導入的數據:

在這里插入圖片描述

🎯 高級功能詳解

注釋功能

單行注釋

在行的第一個單元格輸入 #,整行將被忽略。

單列注釋

在列的第一行輸入 #,整列將被忽略。

Excel表格:
在這里插入圖片描述

生成的代碼和數據:

[Serializable]
public class SummaryExampleEntity
{public int id; // 只導入A、B列,C列被忽略/// <summary>/// name of item/// </summary>public string name;
}[ExcelAsset]
public class SummaryExample : ScriptableObject
{public List<SummaryExampleEntity> item;
}

在這里插入圖片描述

數據邊界

  • 列邊界:第一行出現空單元格時,右側所有列將被忽略
  • 行邊界:第一列出現空單元格時,下方所有行將被忽略

枚舉類型

步驟1:創建枚舉定義
// 創建 ColorEnum.cs 文件
public enum ColorEnum
{RED,    // 紅色GREEN,  // 綠色  BLUE    // 藍色
}
步驟2:Excel中填寫枚舉值

在這里插入圖片描述

步驟3:生成的代碼和數據
[Serializable]
public class EnumExampleEntity
{public int id;/// <summary>/// 名字/// </summary>public string name;/// <summary>/// 顏色/// </summary>public ColorEnum color; // 自動匹配枚舉類型
}

在這里插入圖片描述

復雜類型

支持數組類型、日期時間類型、字典類型和自定義類型

使用數組類型的時候,可省略方括號。

生成的代碼和數據:

創建自定義類型CustomType

[Serializable]
public class CustomType
{public int x;public string s;
}

在這里插入圖片描述

在這里插入圖片描述

自定義資源路徑

通過 AssetPath 參數控制生成的 .asset 文件位置:

[ExcelAsset(AssetPath = "Assets/Resources/MasterData")]
public class MstItems : ScriptableObject
{public List<MstItemsEntity> Entities;
}

調試日志

開啟導入日志:

[ExcelAsset(LogOnImport = true)]  // 導入時輸出詳細日志
public class MstItems : ScriptableObject
{public List<MstItemsEntity> Entities;
}

自定義文件關聯

當Excel文件名與ScriptableObject類名不一致時使用:

// Excel文件名為 "ItemData.xlsx"
// ScriptableObject類名為 "MstItems"[ExcelAsset(ExcelName = "ItemData")]  // 指定關聯的Excel文件名
public class MstItems : ScriptableObject
{public List<MstItemsEntity> Entities;
}

🔧 常見問題

Q: Excel修改后沒有自動更新? **解決方法**:
  1. 確保Excel文件已保存
  2. 在Unity中右鍵點擊Excel文件 → Reimport
  3. 檢查控制臺是否有錯誤信息

📄 許可證

本庫采用 MIT許可證。


如果本工具對您有幫助,請給個?Star支持一下!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/923511.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/923511.shtml
英文地址,請注明出處:http://en.pswp.cn/news/923511.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

np.linalg 函數一覽

&#x1f4da; 常用 np.linalg 函數一覽下面是一些最常用的功能和示例&#xff1a;1. np.linalg.norm() —— 計算向量或矩陣的范數python深色版本import numpy as npv np.array([3, 4]) print(np.linalg.norm(v)) # L2 范數&#xff08;模長&#xff09;: √(34) 5.0A np.…

Linux入門(二)

計算機原理系列 歡迎大家關注「海拉魯知識大陸」 多交流不迷路 Linux入門&#xff08;二&#xff09; 在上一章Linux入門(一)中rm -rf /是比較簡單的哈&#xff0c;那么升級一下&#xff1a;xargs指令的作用是啥呢&#xff1f; 1.進程 應用的可執行文件是放在文件系統里&a…

開發與維護nodejs工具庫或自定義npm包

h5打開以查看 一、初始設置&#xff1a;為成功發布做好準備 1. 項目初始化與結構 bash # 創建項目目錄并初始化 mkdir my-awesome-lib cd my-awesome-lib npm init -y 推薦的項目結構&#xff1a; text my-awesome-lib/ ├── src/ # 源代碼目錄 │ └──…

IntelliJ IDEA 的 Git 功能

1. 克隆&#xff08;Clone&#xff09;項目 這是你開始的第一步。你需要將遠程倉庫的代碼克隆到本地。 打開 IDEA&#xff0c;選擇 Get from VCS。在彈出的窗口中&#xff0c;選擇 Git。粘貼遠程倉庫的 URL&#xff08;通常來自 GitHub、GitLab 等&#xff09;。選擇一個本地目…

fastapi全局注入mysql,單數據庫

1、封裝sql連接 test_db.py from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession from sqlalchemy.orm import sessionmaker from fastapi import Request, Depends# 1. 數據庫連接配置 async_engine create_async_engine("mysqlaiomysql://root:root…

深度學習常見應用算力要求?

深度學習常見應用的算力要求&#xff0c;首先需要明確算力的核心衡量維度&#xff1a;計算能力&#xff1a;以每秒浮點運算次數&#xff08;FLOPS&#xff0c;如 TF32/FP16/FP8 精度下的吞吐量&#xff09;衡量&#xff0c;決定任務運行速度&#xff1b;顯存容量&#xff1a;決…

邪修實戰系列(5)

1、第一階段邪修實戰總覽&#xff08;9.1-9.30&#xff09; 把第一階段&#xff08;基礎夯實期&#xff09;的學習計劃拆解成極具操作性的每日行動方案。這個計劃充分利用我“在職學習”的特殊優勢&#xff0c;強調“用輸出倒逼輸入”&#xff0c;確保每一分鐘的學習都直接服務…

Python TensorFlow的CNN-LSTM-GRU集成模型在邊緣物聯網數據IoT電動汽車充電站入侵檢測應用

全文鏈接&#xff1a;https://tecdat.cn/?p43881 原文出處&#xff1a;拓端抖音號拓端tecdat 隨著物聯網&#xff08;IoT&#xff09;技術在電動汽車充電站&#xff08;EVCS&#xff09;中的普及&#xff0c;充電站不僅成為智能交通的關鍵節點&#xff0c;更因連接電網、用戶設…

3dma渲染噪點成因排查及優化方案

有時候在用 3D Max 渲染完效果圖&#xff0c;畫面上總有密密麻麻的小顆粒&#xff0c;也就是常說的噪點&#xff0c;原本精致的模型和材質&#xff0c;一有噪點質感就掉了大半。其實多數時候&#xff0c;噪點問題都和渲染參數設置有關。那么出現噪點原因和解決方案有哪些&#…

【LeetCode】算法詳解#15 ---環形鏈表II

1.題目描述 給定一個鏈表的頭節點 head &#xff0c;返回鏈表開始入環的第一個節點。 如果鏈表無環&#xff0c;則返回 null。如果鏈表中有某個節點&#xff0c;可以通過連續跟蹤 next 指針再次到達&#xff0c;則鏈表中存在環。 為了表示給定鏈表中的環&#xff0c;評…

Kafka面試精講 Day 18:磁盤IO與網絡優化

【Kafka面試精講 Day 18】磁盤IO與網絡優化 在“Kafka面試精講”系列的第18天&#xff0c;我們聚焦于磁盤IO與網絡優化。作為支撐百萬級吞吐量的分布式消息系統&#xff0c;Kafka的高性能不僅依賴于優秀的架構設計&#xff0c;更離不開對底層資源——尤其是磁盤和網絡——的極…

ActiveMQ RocketMQ RabbitMQ Kafka選型及應用場景

許多時候我們都將Kafka拿來跟常用的幾個消息隊列作比較&#xff0c;將 Kafka 加入對比使得選型更加全面和實際。但請注意Kafka并非完全適用消息中間件的所有場景。這四款消息中間件定位不同&#xff0c;選擇取決于你的具體場景。消息隊列選型核心定位一句話總結RabbitMQ&#x…

STM32初始化串口重定向后printf調試信息不輸出的問題

STM32初始化串口重定向后調試信息不輸出的問題 Author&#xff1a;明月清了個風Date&#xff1a; 2025/9/9PS&#xff1a;開發stm32F745的過程中發現printf有時候不打印信息&#xff0c;單獨調試確定了串口初始化和重定向正確&#xff0c;但是在系統整體調試的時候雖然正確運行…

PCA9535ECDWR2G 微控制器MCU接口芯片 ON 電子元器件解析

一、PCA9535ECDWR2G ON 元器件解析1. 是什么電子元器件&#xff1f; PCA9535ECDWR2G 是安森美半導體&#xff08;ON Semiconductor&#xff09;生產的一款16位I/O擴展器。它屬于接口芯片類別&#xff0c;具體功能是通過IC總線為微控制器&#xff08;MCU&#xff09;提供額外的通…

大模型中token與tokenizer的區別

TokenToken 的基本概念在大模型&#xff08;如GPT系列&#xff09;中&#xff0c;token是文本處理的最小單位。模型將輸入的文本分割成token序列&#xff0c;每個token對應一個唯一的整數ID&#xff0c;用于模型的內部處理。例如&#xff0c;英文單詞"apple"可能被編…

還在覺得剪輯太難?用對視頻剪輯軟件,讓剪輯變得像拼圖一樣有趣

想制作出精彩的Vlog&#xff0c;擁有一款簡單易用的視頻編輯軟件是關鍵的第一步。如果你曾因為覺得剪輯太復雜、技術門檻太高而望而卻步&#xff0c;那么這篇文章就是為你準備的&#xff0c;因為借助今天簡單易用的視頻編輯軟件&#xff0c;人人都能成為自己生活的導演。本文就…

【ZEGO即構開發者日報】微信公眾號上線“智能回復”功能;2025年8月中國應用/游戲廠商出海收入Top30榜;土耳其宣布將封禁29款社交/社媒應用……

&#x1f4a1;開發者朋友們大家好&#xff0c;這里是 開發者日報&#xff01;歡迎查閱您的實時互動日報。本欄目實時聚焦、每日更新【AI】、【泛娛樂】、【語音交互】、【實時音視頻】等領域熱點&#xff0c;歡迎大家在評論區一起探討&#xff01; &#x1f528;「產品技術」 …

前端WebSocket實時通信實現

在項目中使用WebSocket實現實時通信 WebSocket提供了一種在客戶端和服務器之間建立持久連接的方式&#xff0c;可以實現實時數據交換。下面我將展示如何在前端項目中集成WebSocket功能。 設計思路 我將創建一個簡單的聊天室界面來演示WebSocket的使用&#xff0c;包含以下功能&…

電磁流量計可靠品牌之選,基恩士提供多樣化解決方案

引言在工業自動化領域&#xff0c;流量的精確計量是保障產品質量、優化成本和提升設備效率的關鍵一環。當面臨“電磁流量計的可靠品牌”這一問題時&#xff0c;企業通常需要考量產品的耐用性、測量精度、維護成本以及系統集成能力。流量計在安裝、維護和測量精度方面面臨諸多挑…

NumPy數組與Python列表的賦值行為解析

在Python科學計算中&#xff0c;NumPy數組和Python原生列表是兩種常用的數據結構。理解它們之間的賦值行為差異對于編寫高效、正確的代碼至關重要。本文將深入探討NumPy數組賦值給Python變量的各種情況&#xff0c;揭示背后的內存機制和類型轉換特性。 直接賦值行為分析 當我們…