Y3入门(1、创建一个项目)
1下载 vscode
http://163.com/y3/docs/guides/FunctionManual/Debug&Test/LUADeveloperDocumentation/Download-Y3-Assistant
在扩展商店中安装以下插件:
- 《Y3 开发助手》(sumneko.y3-helper)
- 《Lua》(sumneko.lua) 注意同名插件比较多,注意鉴别
- 打开 文件夹 maps/EentryMap/script ,插件 《Y3 开发助手》 点击 “初始化Y3库” ,
2 认识框架
y3库的整理(AI搞的) 分析init.lua
游戏相关模块
框架将游戏中的各种对象和功能封装成模块:
-
游戏基础:
y3.game
(游戏全局对象)、y3.const
(常量)、y3.math
(数学工具)、y3.py_converter
(Python转换器,因为Y3编辑器底层可能使用Python)、y3.helper
(助手函数)、y3.ground
(地形)、y3.config
(配置)、y3.kv
(键值存储)、y3.steam
(Steam平台相关)。 -
计时器:
y3.timer
(游戏计时器)、y3.ctimer
(客户端计时器)、y3.ltimer
(本地计时器)。 -
事件订阅:
y3.py_event_sub
(Python事件订阅)。
游戏对象
框架将游戏对象分为可编辑对象和运行时对象:
-
可编辑对象(在编辑器中创建):单位(
y3.unit
)、技能(y3.ability
)、可破坏物(y3.destructible
)、物品(y3.item
)、buff(y3.buff
)、投射物(y3.projectile
)、科技(y3.technology
)。 -
运行时对象(在运行时创建):光束(
y3.beam
)、物品组(y3.item_group
)、移动器(y3.mover
)、势力(y3.force
)、粒子(y3.particle
)、玩家(y3.player
)、玩家组(y3.player_group
)、单位组(y3.unit_group
)、投射物组(y3.projectile_group
)、选择器(y3.selector
)、施法(y3.cast
)、伤害实例(y3.damage_instance
)、治疗实例(y3.heal_instance
)、声音(y3.sound
)。 -
场景对象:区域(
y3.area
)、相机(y3.camera
)、灯光(y3.light
)、道路(y3.road
)、点(y3.point
)、场景UI(y3.scene_ui
)、UI(y3.ui
)、UI预制体(y3.ui_prefab
)、形状(y3.shape
)。
其他功能
-
y3.object
:对象管理。 -
y3.save_data
:数据保存。 -
y3.dump
:数据转储。 -
y3.sync
:数据同步。 -
y3.network
:网络通信。 -
y3.eca
:ECA(事件-条件-动作)助手。 -
y3.base64
、y3.aes
、y3.rsa
:加密解密。 -
y3.local_ui
:本地UI。 -
y3.fs
:文件系统。 -
y3.rt
:ECA运行时。
开发工具
-
y3.develop.command
:命令系统。 -
y3.develop.code
:代码相关工具。 -
y3.develop.console
:控制台。 -
y3.develop.helper
:开发助手。
工具模块
框架引入了一系列工具模块:
-
y3.proxy
:可能用于创建代理对象。 -
y3.class
:提供面向对象的编程支持,包括类的声明、继承等。 -
y3.util
:通用工具函数。 -
y3.json
:JSON编码和解码。 -
y3.inspect
:用于调试,可以打印出表的详细内容。 -
y3.await
:异步编程支持,可能是基于协程的等待机制。 -
y3.doctor
:可能是一个调试或诊断工具(在pcall中加载,避免错误影响主程序)
其他工具模块
-
y3.reload
:热重载支持,用于开发时重新加载代码。 -
y3.sandbox
:沙盒环境,可能用于安全地执行代码。 -
y3.hash
:哈希算法。 -
y3.linked_table
:链表实现。 -
include
:用于包含文件,可能具有缓存和重载功能。
内存管理
-
y3.pool
:对象池,用于管理对象的复用。 -
y3.gc
:垃圾回收相关工具。