fix: 更新提交

This commit is contained in:
han_han9
2025-11-26 22:57:07 +08:00
parent 8a6620cf8f
commit 4c16bec13f
640 changed files with 70914 additions and 13327 deletions

9
.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,9 @@
{
"eslint.useFlatConfig": true,
"eslint.validate": ["typescript"],
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
},
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode"
}

View File

@@ -1,9 +1,17 @@
/**
* 自动生成的Bean类型定义
* 请勿手动修改此文件
* 生成时间: 2025-10-13T13:51:42.231Z
*/
import { ConfigParseUtils } from "./ConfigParseUtils";
// 没有找到Bean定义
/** Bean: Beans */
export interface Beans {
ClassName: string;
FieldName: string;
FieldType: string;
Comment: string;
}
export function parseBeans(data: any): Beans {
return {
ClassName: ConfigParseUtils.parseString(data.ClassName),
FieldName: ConfigParseUtils.parseString(data.FieldName),
FieldType: ConfigParseUtils.parseString(data.FieldType),
Comment: ConfigParseUtils.parseString(data.Comment),
};
}

View File

@@ -1,12 +1,11 @@
import { Vec2, Vec3, Vec4, Color, Size, Rect, Quat, Mat4 } from "cc";
import { Vec2, Vec3, Vec4, Color, Size, Rect, Quat, Mat4 } from 'cc';
import LogUtils from '@max-studio/core/utils/LogUtils';
import LogUtils from "@max-studio/core/utils/LogUtils";
/**
* 配置表解析工具类
* 提供通用的数据类型解析函数
*
*
* ⚠️ 此文件由配置表生成器自动生成,请勿手动修改!
* 如需修改,请编辑 configs/plugins/ConfigTableGenerator.ts 中的 generateConfigParseUtils 方法
*/
@@ -15,8 +14,8 @@ export class ConfigParseUtils {
* 解析Vec2类型
*/
public static parseVec2(value: any): Vec2 {
if (typeof value === 'string') {
const parts = value.split(',').map(v => Number.parseFloat(v.trim()) || 0);
if (typeof value === "string") {
const parts = value.split(",").map((v) => Number.parseFloat(v.trim()) || 0);
return new Vec2(parts[0] || 0, parts[1] || 0);
}
return new Vec2(0, 0);
@@ -26,8 +25,8 @@ export class ConfigParseUtils {
* 解析Vec3类型
*/
public static parseVec3(value: any): Vec3 {
if (typeof value === 'string') {
const parts = value.split(',').map(v => Number.parseFloat(v.trim()) || 0);
if (typeof value === "string") {
const parts = value.split(",").map((v) => Number.parseFloat(v.trim()) || 0);
return new Vec3(parts[0] || 0, parts[1] || 0, parts[2] || 0);
}
return new Vec3(0, 0, 0);
@@ -37,8 +36,8 @@ export class ConfigParseUtils {
* 解析Vec4类型
*/
public static parseVec4(value: any): Vec4 {
if (typeof value === 'string') {
const parts = value.split(',').map(v => Number.parseFloat(v.trim()) || 0);
if (typeof value === "string") {
const parts = value.split(",").map((v) => Number.parseFloat(v.trim()) || 0);
return new Vec4(parts[0] || 0, parts[1] || 0, parts[2] || 0, parts[3] || 0);
}
return new Vec4(0, 0, 0, 0);
@@ -48,8 +47,8 @@ export class ConfigParseUtils {
* 解析Color类型
*/
public static parseColor(value: any): Color {
if (typeof value === 'string') {
if (value.startsWith('#')) {
if (typeof value === "string") {
if (value.startsWith("#")) {
// 十六进制颜色
const hex = value.slice(1);
const r = Number.parseInt(hex.substring(0, 2), 16);
@@ -59,7 +58,7 @@ export class ConfigParseUtils {
return new Color(r, g, b, a);
} else {
// 逗号分隔的RGBA值
const parts = value.split(',').map(v => Number.parseFloat(v.trim()) || 0);
const parts = value.split(",").map((v) => Number.parseFloat(v.trim()) || 0);
return new Color(parts[0] || 0, parts[1] || 0, parts[2] || 0, parts[3] !== undefined ? parts[3] : 255);
}
}
@@ -70,8 +69,8 @@ export class ConfigParseUtils {
* 解析Size类型
*/
public static parseSize(value: any): Size {
if (typeof value === 'string') {
const parts = value.split(',').map(v => Number.parseFloat(v.trim()) || 0);
if (typeof value === "string") {
const parts = value.split(",").map((v) => Number.parseFloat(v.trim()) || 0);
return new Size(parts[0] || 0, parts[1] || 0);
}
return new Size(0, 0);
@@ -81,8 +80,8 @@ export class ConfigParseUtils {
* 解析Rect类型
*/
public static parseRect(value: any): Rect {
if (typeof value === 'string') {
const parts = value.split(',').map(v => Number.parseFloat(v.trim()) || 0);
if (typeof value === "string") {
const parts = value.split(",").map((v) => Number.parseFloat(v.trim()) || 0);
return new Rect(parts[0] || 0, parts[1] || 0, parts[2] || 0, parts[3] || 0);
}
return new Rect(0, 0, 0, 0);
@@ -92,8 +91,8 @@ export class ConfigParseUtils {
* 解析Quat类型
*/
public static parseQuat(value: any): Quat {
if (typeof value === 'string') {
const parts = value.split(',').map(v => Number.parseFloat(v.trim()) || 0);
if (typeof value === "string") {
const parts = value.split(",").map((v) => Number.parseFloat(v.trim()) || 0);
return new Quat(parts[0] || 0, parts[1] || 0, parts[2] || 0, parts[3] !== undefined ? parts[3] : 1);
}
return new Quat(0, 0, 0, 1);
@@ -103,18 +102,30 @@ export class ConfigParseUtils {
* 解析Mat4类型
*/
public static parseMat4(value: any): Mat4 {
if (typeof value === 'string') {
const parts = value.split(',').map(v => Number.parseFloat(v.trim()) || 0);
if (typeof value === "string") {
const parts = value.split(",").map((v) => Number.parseFloat(v.trim()) || 0);
const mat = new Mat4();
try {
mat.set(
parts[0], parts[1], parts[2], parts[3],
parts[4], parts[5], parts[6], parts[7],
parts[8], parts[9], parts[10], parts[11],
parts[12], parts[13], parts[14], parts[15]
parts[0],
parts[1],
parts[2],
parts[3],
parts[4],
parts[5],
parts[6],
parts[7],
parts[8],
parts[9],
parts[10],
parts[11],
parts[12],
parts[13],
parts[14],
parts[15],
);
} catch (err) {
LogUtils.error('ConfigParseUtils', '解析Mat4失败:', err);
LogUtils.error("ConfigParseUtils", "解析Mat4失败:", err);
}
return mat;
}
@@ -125,14 +136,14 @@ export class ConfigParseUtils {
* 解析布尔值
*/
static parseBoolean(value: any): boolean {
if (typeof value === 'boolean') {
if (typeof value === "boolean") {
return value;
}
if (typeof value === 'string') {
if (typeof value === "string") {
const lowerValue = value.toLowerCase();
return lowerValue === 'true' || lowerValue === '1' || lowerValue === 'yes';
return lowerValue === "true" || lowerValue === "1" || lowerValue === "yes";
}
if (typeof value === 'number') {
if (typeof value === "number") {
return value !== 0;
}
return false;
@@ -142,8 +153,8 @@ export class ConfigParseUtils {
* 解析整数
*/
public static parseInt(value: string | number): number {
if (typeof value === 'number') return Math.floor(value);
if (typeof value === 'string') return Number.parseInt(value.trim()) || 0;
if (typeof value === "number") return Math.floor(value);
if (typeof value === "string") return Number.parseInt(value.trim()) || 0;
return 0;
}
@@ -158,7 +169,7 @@ export class ConfigParseUtils {
* 解析字符串
*/
static parseString(value: any): string {
return String(value || '');
return String(value || "");
}
/**
@@ -166,10 +177,13 @@ export class ConfigParseUtils {
*/
static parseStringArray(value: any): string[] {
if (Array.isArray(value)) {
return value.map(item => String(item || ''));
return value.map((item) => String(item || ""));
}
if (typeof value === 'string') {
return value.split(',').map(item => item.trim()).filter(item => item.length > 0);
if (typeof value === "string") {
return value
.split(",")
.map((item) => item.trim())
.filter((item) => item.length > 0);
}
return [];
}
@@ -179,10 +193,10 @@ export class ConfigParseUtils {
*/
static parseNumberArray(value: any): number[] {
if (Array.isArray(value)) {
return value.map(item => Number.parseFloat(item) || 0);
return value.map((item) => Number.parseFloat(item) || 0);
}
if (typeof value === 'string') {
return value.split(',').map(item => Number.parseFloat(item.trim()) || 0);
if (typeof value === "string") {
return value.split(",").map((item) => Number.parseFloat(item.trim()) || 0);
}
return [];
}
@@ -191,7 +205,7 @@ export class ConfigParseUtils {
* 深度冻结对象,确保所有嵌套属性都不可修改
*/
public static deepFreeze<T>(obj: T): T {
if (obj === null || typeof obj !== 'object') {
if (obj === null || typeof obj !== "object") {
return obj;
}
@@ -207,23 +221,23 @@ export class ConfigParseUtils {
try {
// 递归冻结所有属性(先冻结子对象)
Object.getOwnPropertyNames(obj).forEach(prop => {
Object.getOwnPropertyNames(obj).forEach((prop) => {
const value = (obj as any)[prop];
if (value !== null && typeof value === 'object') {
if (value !== null && typeof value === "object") {
this.deepFreeze(value);
}
});
// 最后冻结对象本身
Object.freeze(obj);
// 对于数组,还需要防止索引赋值
if (Array.isArray(obj)) {
Object.seal(obj);
}
} catch (err) {
// 如果冻结失败,记录警告但不中断程序
LogUtils.warn('ConfigParseUtils', '无法冻结对象:', obj, err);
LogUtils.warn("ConfigParseUtils", "无法冻结对象:", obj, err);
}
return obj;
@@ -232,26 +246,43 @@ export class ConfigParseUtils {
/**
* 创建配置数据的只读代理,提供更好的错误提示
*/
public static createReadonlyProxy<T extends object>(obj: T, configName: string = '配置数据'): T {
public static createReadonlyProxy<T extends object>(obj: T, configName: string = "配置数据"): T {
return new Proxy(obj, {
set(target, property, value) {
const errorMsg = `❌ 禁止修改${configName}的属性 "${String(property)}"!配置数据在运行时应保持不可变。`;
LogUtils.error('ConfigParseUtils', errorMsg);
LogUtils.error("ConfigParseUtils", errorMsg);
throw new Error(errorMsg);
},
defineProperty(target, property, descriptor) {
const errorMsg = `❌ 禁止定义${configName}的属性 "${String(property)}"!配置数据在运行时应保持不可变。`;
LogUtils.error('ConfigParseUtils', errorMsg);
LogUtils.error("ConfigParseUtils", errorMsg);
throw new Error(errorMsg);
},
deleteProperty(target, property) {
const errorMsg = `❌ 禁止删除${configName}的属性 "${String(property)}"!配置数据在运行时应保持不可变。`;
LogUtils.error('ConfigParseUtils', errorMsg);
LogUtils.error("ConfigParseUtils", errorMsg);
throw new Error(errorMsg);
}
},
});
}
}
// 导出便捷的解析函数
export const { parseVec2, parseVec3, parseVec4, parseColor, parseSize, parseRect, parseQuat, parseMat4, parseBoolean, parseInt, parseFloat, parseString, parseStringArray, parseNumberArray, deepFreeze, createReadonlyProxy } = ConfigParseUtils;
export const {
parseVec2,
parseVec3,
parseVec4,
parseColor,
parseSize,
parseRect,
parseQuat,
parseMat4,
parseBoolean,
parseInt,
parseFloat,
parseString,
parseStringArray,
parseNumberArray,
deepFreeze,
createReadonlyProxy,
} = ConfigParseUtils;

View File

@@ -1,16 +1,7 @@
/**
* 自动生成的枚举类型定义
* 请勿手动修改此文件
* 生成时间: 2025-10-13T13:51:42.230Z
*/
/** 自动生成的枚举定义 */
export enum DressSourceType {
/** 无 */
NONE = 0,
/** 插槽 */
SLOT = 1,
/** 挂点静态图 */
SOCKET_TEX = 2,
/** 挂点动画 */
SOCKET_SPINE = 3
NONE = 0, // 无
SLOT = 1, // 插槽
SOCKET_TEX = 2, // 挂点静态图
SOCKET_SPINE = 3, // 挂点动画
}

View File

@@ -1,19 +1,5 @@
import { Color } from 'cc';
import { ConfigParseUtils } from './ConfigParseUtils';
import { Color } from "cc";
import { ConfigParseUtils } from "./ConfigParseUtils";
/**
* PetConfig数据结构
@@ -21,133 +7,64 @@ import { ConfigParseUtils } from './ConfigParseUtils';
export class PetConfigData {
private _id: number;
public get id(): number {
return this._id;
}
private _key: string;
public get key(): string {
return this._key;
}
private _bundle: string;
public get bundle(): string {
return this._bundle;
}
private _path: string;
public get path(): string {
return this._path;
}
private _name: string;
public get name(): string {
return this._name;
}
private _color: Color;
public get color(): Color {
return this._color;
}
private _desc: string;
/** id */
public get id(): number {
return this._id;
}
/** key */
public get key(): string {
return this._key;
}
/** bundle */
public get bundle(): string {
return this._bundle;
}
/** 资源路径 */
public get path(): string {
return this._path;
}
/** 宠物名称 */
public get name(): string {
return this._name;
}
/** 颜色 */
public get color(): Color {
return ConfigParseUtils.createReadonlyProxy(ConfigParseUtils.deepFreeze(this._color), '颜色');
}
/** 描述 */
public get desc(): string {
return this._desc;
}
public constructor(
id: number,
key: string,
bundle: string,
path: string,
name: string,
color: Color,
desc: string
) {
this._id = id;
this._key = key;
this._bundle = bundle;
this._path = path;
this._name = name;
this._color = color;
this._desc = desc;
}
}
/**
* 解析配置数据
*/
export function parsePetConfigData(data: any): PetConfigData {
return new PetConfigData(
ConfigParseUtils.parseInt(data.id),
ConfigParseUtils.parseString(data.key),
@@ -161,6 +78,5 @@ export function parsePetConfigData(data: any): PetConfigData {
ConfigParseUtils.parseColor(data.color),
ConfigParseUtils.parseString(data.desc)
);
}
}

View File

@@ -1,11 +1,11 @@
import { JsonAsset } from "cc";
import { ResManager } from "@max-studio/core/res/ResManager";
import { singleton, Singleton } from "@max-studio/core/Singleton";
import LogUtils from "@max-studio/core/utils/LogUtils";
import { ConfigParseUtils } from "./ConfigParseUtils";
import { PetConfigData, parsePetConfigData } from "./PetConfigData";
import ResManager from "@max-studio/core/res/ResManager";
/**
* PetConfig配置管理器
@@ -13,10 +13,11 @@ import { PetConfigData, parsePetConfigData } from "./PetConfigData";
* ⚠️ 此文件由配置表生成器自动生成,请勿手动修改!
* 如需修改请编辑对应的Excel配置文件然后重新生成
*/
@singleton()
@singleton({ auto: true })
export class PetConfigManager extends Singleton {
private configList: readonly PetConfigData[] = [];
private configMap = new Map<number, PetConfigData>();
private isLoaded = false;
protected async onInit(): Promise<void> {
@@ -25,19 +26,15 @@ export class PetConfigManager extends Singleton {
private async loadConfig(): Promise<void> {
try {
const asset = await ResManager.getInstance().loadAsset<JsonAsset>(
"generated/data/PetConfig",
JsonAsset,
"configs",
);
const { err, asset } = await ResManager.getInstance().loadAsset<JsonAsset>({
path: "generated/data/PetConfig",
type: JsonAsset,
bundle: "configs",
});
this.parseConfig(<any>asset.json);
this.isLoaded = true;
} catch (err) {
LogUtils.error(
"PetConfigManager",
"加载 PetConfig 配置失败:",
err,
);
LogUtils.error("PetConfigManager", "加载 PetConfig 配置失败:", err);
}
}
@@ -46,26 +43,20 @@ export class PetConfigManager extends Singleton {
data.map((item) => {
const config = parsePetConfigData(item);
const frozenConfig = ConfigParseUtils.deepFreeze(config);
return ConfigParseUtils.createReadonlyProxy(
frozenConfig,
"PetConfigData配置",
);
return ConfigParseUtils.createReadonlyProxy(frozenConfig, "PetConfigData配置");
}),
);
this.configMap.clear();
for (const config of this.configList) {
this.configMap.set(config.id, config);
this.configMap.set((config as any).id, config);
}
// 深度冻结配置映射,防止运行时修改
ConfigParseUtils.deepFreeze(this.configMap);
}
public getConfig(id: number): PetConfigData | null {
if (!this.isLoaded) {
LogUtils.warn(
"PetConfigManager",
"PetConfig 配置尚未加载完成,请等待加载完成",
);
LogUtils.warn("PetConfigManager", "PetConfig 配置尚未加载完成,请等待加载完成");
return null;
}
return this.configMap.get(id) || null;
@@ -73,10 +64,7 @@ export class PetConfigManager extends Singleton {
public getAllConfigs(): PetConfigData[] {
if (!this.isLoaded) {
LogUtils.warn(
"PetConfigManager",
"PetConfig 配置尚未加载完成,请等待加载完成",
);
LogUtils.warn("PetConfigManager", "PetConfig 配置尚未加载完成,请等待加载完成");
return [];
}
return [...this.configList];

View File

@@ -1,130 +1,71 @@
import { ConfigParseUtils } from './ConfigParseUtils';
import { DressSourceType } from './Enums';
import { ConfigParseUtils } from "./ConfigParseUtils";
/**
* PetPartConfig数据结构
*/
export class PetPartConfigData {
private _id: number;
public get id(): number {
return this._id;
}
private _name: string;
private _bundle: string;
private _path: string;
private _sourceType: DressSourceType;
/** id */
public get id(): number {
return this._id;
}
/** 装扮名称 */
public get name(): string {
return this._name;
}
/** bundle */
public get bundle(): string {
return this._bundle;
private _sourceName: string;
public get sourceName(): string {
return this._sourceName;
}
/** 资源路径 */
public get path(): string {
return this._path;
private _type: number;
public get type(): number {
return this._type;
}
/** 资源类型 */
public get sourceType(): DressSourceType {
private _sourceType: number;
public get sourceType(): number {
return this._sourceType;
}
private _quality: number;
public get quality(): number {
return this._quality;
}
public constructor(
id: number,
name: string,
bundle: string,
path: string,
sourceType: DressSourceType
sourceName: string,
type: number,
sourceType: number,
quality: number,
) {
this._id = id;
this._name = name;
this._bundle = bundle;
this._path = path;
this._sourceName = sourceName;
this._type = type;
this._sourceType = sourceType;
this._quality = quality;
}
}
/**
* 解析配置数据
*/
export function parsePetPartConfigData(data: any): PetPartConfigData {
return new PetPartConfigData(
ConfigParseUtils.parseInt(data.id),
ConfigParseUtils.parseString(data.name),
ConfigParseUtils.parseString(data.bundle),
ConfigParseUtils.parseString(data.sourceName),
ConfigParseUtils.parseString(data.path),
ConfigParseUtils.parseInt(data.type),
data.sourceType as DressSourceType
ConfigParseUtils.parseInt(data.sourceType),
ConfigParseUtils.parseInt(data.quality),
);
}
}

View File

@@ -1,11 +1,11 @@
import { JsonAsset } from "cc";
import { ResManager } from "@max-studio/core/res/ResManager";
import { singleton, Singleton } from "@max-studio/core/Singleton";
import LogUtils from "@max-studio/core/utils/LogUtils";
import { ConfigParseUtils } from "./ConfigParseUtils";
import { PetPartConfigData, parsePetPartConfigData } from "./PetPartConfigData";
import ResManager from "@max-studio/core/res/ResManager";
/**
* PetPartConfig配置管理器
@@ -13,10 +13,11 @@ import { PetPartConfigData, parsePetPartConfigData } from "./PetPartConfigData";
* ⚠️ 此文件由配置表生成器自动生成,请勿手动修改!
* 如需修改请编辑对应的Excel配置文件然后重新生成
*/
@singleton()
@singleton({ auto: true })
export class PetPartConfigManager extends Singleton {
private configList: readonly PetPartConfigData[] = [];
private configMap = new Map<number, PetPartConfigData>();
private isLoaded = false;
protected async onInit(): Promise<void> {
@@ -25,19 +26,15 @@ export class PetPartConfigManager extends Singleton {
private async loadConfig(): Promise<void> {
try {
const asset = await ResManager.getInstance().loadAsset<JsonAsset>(
"generated/data/PetPartConfig",
JsonAsset,
"configs",
);
const { err, asset } = await ResManager.getInstance().loadAsset<JsonAsset>({
path: "generated/data/PetPartConfig",
type: JsonAsset,
bundle: "configs",
});
this.parseConfig(<any>asset.json);
this.isLoaded = true;
} catch (err) {
LogUtils.error(
"PetPartConfigManager",
"加载 PetPartConfig 配置失败:",
err,
);
LogUtils.error("PetPartConfigManager", "加载 PetPartConfig 配置失败:", err);
}
}
@@ -46,26 +43,20 @@ export class PetPartConfigManager extends Singleton {
data.map((item) => {
const config = parsePetPartConfigData(item);
const frozenConfig = ConfigParseUtils.deepFreeze(config);
return ConfigParseUtils.createReadonlyProxy(
frozenConfig,
"PetPartConfigData配置",
);
return ConfigParseUtils.createReadonlyProxy(frozenConfig, "PetPartConfigData配置");
}),
);
this.configMap.clear();
for (const config of this.configList) {
this.configMap.set(config.id, config);
this.configMap.set((config as any).id, config);
}
// 深度冻结配置映射,防止运行时修改
ConfigParseUtils.deepFreeze(this.configMap);
}
public getConfig(id: number): PetPartConfigData | null {
if (!this.isLoaded) {
LogUtils.warn(
"PetPartConfigManager",
"PetPartConfig 配置尚未加载完成,请等待加载完成",
);
LogUtils.warn("PetPartConfigManager", "PetPartConfig 配置尚未加载完成,请等待加载完成");
return null;
}
return this.configMap.get(id) || null;
@@ -73,10 +64,7 @@ export class PetPartConfigManager extends Singleton {
public getAllConfigs(): PetPartConfigData[] {
if (!this.isLoaded) {
LogUtils.warn(
"PetPartConfigManager",
"PetPartConfig 配置尚未加载完成,请等待加载完成",
);
LogUtils.warn("PetPartConfigManager", "PetPartConfig 配置尚未加载完成,请等待加载完成");
return [];
}
return [...this.configList];

View File

@@ -1,186 +1,272 @@
[
{
"id": 1001,
"id": "1001",
"key": "chenghuang",
"bundle": "pet-spine",
"path": "ChengHuang",
"color": "#00000000"
"name": "",
"color": "#00000000",
"desc": ""
},
{
"id": 1002,
"id": "1002",
"key": "dangkang",
"bundle": "pet-spine",
"path": "DangKang",
"color": "#00000000"
"name": "",
"color": "#00000000",
"desc": ""
},
{
"id": 1003,
"id": "1003",
"key": "shuoshu",
"bundle": "pet-spine",
"path": "ShuoShu"
"path": "ShuoShu",
"name": "",
"color": "",
"desc": ""
},
{
"id": 1004,
"id": "1004",
"key": "jiuwei",
"bundle": "pet-spine",
"path": "JiuWei",
"name": "精卫"
"name": "精卫",
"color": "",
"desc": ""
},
{
"id": 1005,
"id": "1005",
"key": "qiongqi",
"bundle": "pet-spine",
"path": "QiongQi",
"name": "穷奇"
"name": "穷奇",
"color": "",
"desc": ""
},
{
"id": 1006,
"id": "1006",
"key": "tiangou",
"bundle": "pet-spine",
"path": "TianGou"
"path": "TianGou",
"name": "",
"color": "",
"desc": ""
},
{
"id": 1007,
"id": "1007",
"key": "xiangliu",
"bundle": "pet-spine",
"path": "XiangLiu"
"path": "XiangLiu",
"name": "",
"color": "",
"desc": ""
},
{
"id": 1008,
"id": "1008",
"key": "lili",
"bundle": "pet-spine",
"path": "LiLi"
"path": "LiLi",
"name": "",
"color": "",
"desc": ""
},
{
"id": 1009,
"id": "1009",
"key": "yugong",
"bundle": "pet-spine",
"path": "YuGong"
"path": "YuGong",
"name": "",
"color": "",
"desc": ""
},
{
"id": 1010,
"id": "1010",
"key": "yutu",
"bundle": "pet-spine",
"path": "YuTu"
"path": "YuTu",
"name": "",
"color": "",
"desc": ""
},
{
"id": 1011,
"id": "1011",
"key": "zhurong",
"bundle": "pet-spine",
"path": "ZhuRong"
"path": "ZhuRong",
"name": "",
"color": "",
"desc": ""
},
{
"id": 1012,
"id": "1012",
"key": "changyou",
"bundle": "pet-spine",
"path": "Changyou"
"path": "Changyou",
"name": "",
"color": "",
"desc": ""
},
{
"id": 1013,
"id": "1013",
"key": "dijiang",
"bundle": "pet-spine",
"path": "Dijiang"
"path": "Dijiang",
"name": "",
"color": "",
"desc": ""
},
{
"id": 1014,
"id": "1014",
"key": "jili",
"bundle": "pet-spine",
"path": "Jili"
"path": "Jili",
"name": "",
"color": "",
"desc": ""
},
{
"id": 1015,
"id": "1015",
"key": "shusi",
"bundle": "pet-spine",
"path": "Shusi"
"path": "Shusi",
"name": "",
"color": "",
"desc": ""
},
{
"id": 1016,
"id": "1016",
"key": "wanv",
"bundle": "pet-spine",
"path": "Wanv"
"path": "Wanv",
"name": "",
"color": "",
"desc": ""
},
{
"id": 1017,
"id": "1017",
"key": "xuangui",
"bundle": "pet-spine",
"path": "Xuangui"
"path": "Xuangui",
"name": "",
"color": "",
"desc": ""
},
{
"id": 1018,
"id": "1018",
"key": "yingyu",
"bundle": "pet-spine",
"path": "Yingyu"
"path": "Yingyu",
"name": "",
"color": "",
"desc": ""
},
{
"id": 1019,
"id": "1019",
"key": "yunque",
"bundle": "pet-spine",
"path": "Yunque"
"path": "Yunque",
"name": "",
"color": "",
"desc": ""
},
{
"id": 1020,
"id": "1020",
"key": "pangding",
"bundle": "pet-spine",
"path": "PangDing"
"path": "PangDing",
"name": "",
"color": "",
"desc": ""
},
{
"id": 1021,
"id": "1021",
"key": "shanyuan",
"bundle": "pet-spine",
"path": "ShanYuan"
"path": "ShanYuan",
"name": "",
"color": "",
"desc": ""
},
{
"id": 1022,
"id": "1022",
"key": "zhuyin",
"bundle": "pet-spine",
"path": "ZhuYin"
"path": "ZhuYin",
"name": "",
"color": "",
"desc": ""
},
{
"id": 1023,
"id": "1023",
"key": "yingwu",
"bundle": "pet-spine",
"path": "YingWu"
"path": "YingWu",
"name": "",
"color": "",
"desc": ""
},
{
"id": 1024,
"id": "1024",
"key": "linghu",
"bundle": "pet-spine",
"path": "LingHu"
"path": "LingHu",
"name": "",
"color": "",
"desc": ""
},
{
"id": 1025,
"id": "1025",
"key": "bailuwang",
"bundle": "pet-spine",
"path": "BaiLuWang"
"path": "BaiLuWang",
"name": "",
"color": "",
"desc": ""
},
{
"id": 1026,
"id": "1026",
"key": "xuanwu",
"bundle": "pet-spine",
"path": "XuanWu"
"path": "XuanWu",
"name": "",
"color": "",
"desc": ""
},
{
"id": 1027,
"id": "1027",
"key": "fengyou",
"bundle": "pet-spine",
"path": "FengYou"
"path": "FengYou",
"name": "",
"color": "",
"desc": ""
},
{
"id": 1028,
"id": "1028",
"key": "nianshou",
"bundle": "pet-spine",
"path": "NianShou"
"path": "NianShou",
"name": "",
"color": "",
"desc": ""
},
{
"id": 1029,
"id": "1029",
"key": "fenghuang",
"bundle": "pet-spine",
"path": "FengHuang"
"path": "FengHuang",
"name": "",
"color": "",
"desc": ""
},
{
"id": 1030,
"id": "1030",
"key": "touzishe",
"bundle": "pet-spine",
"path": "TouZiShe"
"path": "TouZiShe",
"name": "",
"color": "",
"desc": ""
}
]

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,9 @@
{
"ver": "1.2.0",
"importer": "directory",
"imported": true,
"uuid": "a53e21a6-1d72-42c3-a8ea-ce4cd0dc318f",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@@ -0,0 +1,63 @@
[
{
"__type__": "cc.Prefab",
"_name": "DressGlareNode",
"_objFlags": 0,
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"asyncLoadAssets": false,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "DressGlareNode",
"_objFlags": 0,
"_parent": null,
"_children": [],
"_active": true,
"_components": [],
"_prefab": {
"__id__": 2
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_layer": 1073741824,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "c46/YsCPVOJYA4mWEpNYRx"
}
]

View File

@@ -0,0 +1,13 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "e8086588-8a5d-4210-bc27-389b6adcaf11",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "DressGlareNode"
}
}

View File

@@ -0,0 +1,340 @@
[
{
"__type__": "cc.Prefab",
"_name": "DressSocketNode",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "DressSocketNode",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [
{
"__id__": 2
},
{
"__id__": 8
}
],
"_active": true,
"_components": [],
"_prefab": {
"__id__": 14
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 1073741824,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.Node",
"_name": "Texture",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 1
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 3
},
{
"__id__": 5
}
],
"_prefab": {
"__id__": 7
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 1073741824,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 2
},
"_enabled": true,
"__prefab": {
"__id__": 4
},
"_contentSize": {
"__type__": "cc.Size",
"width": 100,
"height": 100
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "c2tK6S82tEJq55LVlT4F3N"
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 2
},
"_enabled": true,
"__prefab": {
"__id__": 6
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_spriteFrame": null,
"_type": 0,
"_fillType": 0,
"_sizeMode": 2,
"_fillCenter": {
"__type__": "cc.Vec2",
"x": 0,
"y": 0
},
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": false,
"_useGrayscale": false,
"_atlas": null,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "a5XjaX0ABPP5RSoo98iHXa"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "46WgrGcBpCU4AVxZHeUKo0",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.Node",
"_name": "Spine",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 1
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 9
},
{
"__id__": 11
}
],
"_prefab": {
"__id__": 13
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 1073741824,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 8
},
"_enabled": true,
"__prefab": {
"__id__": 10
},
"_contentSize": {
"__type__": "cc.Size",
"width": 100,
"height": 100
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.60222
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "e8PHvFTQdCub2YlQVztJGK"
},
{
"__type__": "sp.Skeleton",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 8
},
"_enabled": true,
"__prefab": {
"__id__": 12
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_skeletonData": null,
"defaultSkin": "",
"defaultAnimation": "",
"_premultipliedAlpha": false,
"_timeScale": 1,
"_preCacheMode": -1,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
"_debugBones": false,
"_debugSlots": false,
"_enableBatch": false,
"loop": true,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "0bLrMfCo1HH4sNbP27AV7B"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "28LtEJQG9CerixgYrYjMCo",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "c46/YsCPVOJYA4mWEpNYRx",
"instance": null,
"targetOverrides": null
}
]

View File

@@ -0,0 +1,13 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "2366e791-ed40-4713-8037-8702c964ea37",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "DressSocketNode"
}
}

View File

@@ -0,0 +1,67 @@
[
{
"__type__": "cc.Prefab",
"_name": "GameUI",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "GameUI",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [],
"_active": true,
"_components": [],
"_prefab": {
"__id__": 2
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 1073741824,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "c46/YsCPVOJYA4mWEpNYRx",
"instance": null,
"targetOverrides": null
}
]

View File

@@ -0,0 +1,13 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "1369e7f1-056a-4e3d-8484-39be5dface1e",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "GameUI"
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,13 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "682cc812-4182-4fe0-8b91-43c4d9b6add6",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "MainUI-001"
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,9 @@
{
"ver": "1.2.0",
"importer": "directory",
"imported": true,
"uuid": "d098e1e4-9d54-4ad0-88f0-f13bf7c77e51",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@@ -0,0 +1,232 @@
import { instantiate, Node, sp, Sprite, SpriteFrame, Texture2D } from "cc";
import { DRESS_PART, DRESS_SOURCE_TYPE, IDressInfo, SPINE_SLOT, SPINE_SOCKET } from "./Types";
import ResManager from "@max-studio/core/res/ResManager";
import { loadDressSocketNode } from "./PetUtils";
import { StringUtils } from "@max-studio/core/utils/StringUtils";
export class BasePart {
protected skeleton: sp.Skeleton = null;
protected info: IDressInfo = null;
protected socketName: string = null;
protected part: DRESS_PART = null;
protected faceSkeleton: sp.Skeleton = null;
protected socketMountNode: Node = null;
protected socketCache: Map<string, sp.SpineSocket> = new Map();
protected socketNode: Node = null;
constructor(ske: sp.Skeleton, part: DRESS_PART) {
this.skeleton = ske;
this.part = part;
this.socketName = SPINE_SOCKET[part];
this.faceSkeleton = ske.node.getChildByName("face")?.getComponent(sp.Skeleton);
}
public async putOn(info: IDressInfo) {
this.takeOff();
this.info = info;
if (info.sourceLocationType == DRESS_SOURCE_TYPE.SLOT) {
await this.putOnBySlot(info);
} else {
await this.putOnBySocket(info);
}
}
public takeOff() {
if (this.info == null) {
return;
}
const partSkeleton = this.getPartSkeleton();
if (this.info.sourceLocationType == DRESS_SOURCE_TYPE.SLOT) {
const slotName = SPINE_SLOT[this.part];
if (StringUtils.isEmpty(slotName) || partSkeleton == null) {
console.error("宠物_槽位_空", slotName);
return;
}
const slot = partSkeleton.findSlot(slotName);
if (!slot) {
console.error("宠物_槽位_不存在", slotName);
return;
}
if (slot.texture) {
ResManager.getInstance().releaseAsset(slot.texture);
slot.texture = null;
}
partSkeleton.setSlotTexture(slotName, null, true);
} else {
if (!this.socketNode) {
return;
}
const socketSprite = this.socketNode.getOrAddComponent(Sprite, "Texture");
if (socketSprite && socketSprite.spriteFrame) {
ResManager.getInstance().releaseAsset(socketSprite.spriteFrame);
socketSprite.spriteFrame = null;
}
const spine = this.socketNode.getOrAddComponent(sp.Skeleton, "Spine");
if (spine && spine.skeletonData) {
ResManager.getInstance().releaseAsset(spine.skeletonData);
spine.skeletonData = undefined;
spine.animation = undefined;
}
}
this.info = null;
}
private getPartSkeleton() {
if (
this.part == DRESS_PART.GLASSES ||
this.part == DRESS_PART.ACCESS ||
this.info.sourceLocationType == DRESS_SOURCE_TYPE.SOCKET_TEX_FACE ||
this.info.sourceLocationType == DRESS_SOURCE_TYPE.SOCKET_SPINE_FACE
) {
return this.faceSkeleton;
}
return this.skeleton;
}
private getPartBonePath(skeleton: sp.Skeleton, name: string) {
let path = "";
console.log("获取宠物_骨骼_路径:", name);
let bone = skeleton.findBone(name);
if (bone) {
path = bone.data.name;
while (bone.parent) {
bone = bone.parent;
path = `${bone.data.name}/${path}`;
if ("root" == bone.data.name) {
break;
}
}
}
return path;
}
private getSocketNode(ske: sp.Skeleton, path: string): sp.SpineSocket {
let socket = this.socketCache.get(path);
if (socket == null) {
const sockets = ske.sockets as sp.SpineSocket[];
socket = sockets.find((s) => s.path == path);
if (!socket) {
console.error("宠物_挂点_不存在 创建挂点:", path);
socket = new sp.SpineSocket(path);
sockets.push(socket);
ske.sockets = sockets;
}
this.socketCache.set(path, socket);
}
return socket;
}
private async putOnBySlot(info: IDressInfo) {
const partSkeleton = this.getPartSkeleton();
const slotName = SPINE_SLOT[this.part];
if (StringUtils.isEmpty(slotName) || partSkeleton == null) {
console.error("宠物_槽位_空", slotName);
return;
}
const slot = partSkeleton.findSlot(slotName);
if (!slot) {
console.error("宠物_槽位_不存在", slotName);
return;
}
if (!info) {
if (slot.texture) {
ResManager.getInstance().releaseAsset(slot.texture);
slot.texture = null;
}
partSkeleton.setSlotTexture(slotName, null, true);
return;
}
const { err, asset } = await ResManager.getInstance().loadAsset({
bundle: "dress-spine",
path: `DressTexture/${info.sourceName}`,
type: Texture2D,
});
if (err) {
console.error("加载宠物_槽位_失败", err);
return;
}
if (this.info != info) {
ResManager.getInstance().releaseAsset(asset);
return;
}
if (slot.texture != null) {
ResManager.getInstance().releaseAsset(slot.texture);
slot.texture = null;
}
slot.texture = asset;
partSkeleton.setSlotTexture(slotName, asset, true);
}
private async putOnBySocket(info: IDressInfo) {
const partSkeleton = this.getPartSkeleton();
const bonePath = this.getPartBonePath(partSkeleton, this.socketName);
if (this.socketNode == null) {
const socketPrefab = await loadDressSocketNode();
if (socketPrefab == null) {
return;
}
this.socketNode = instantiate(socketPrefab);
}
if (
info.sourceLocationType == DRESS_SOURCE_TYPE.SOCKET_TEX_FACE ||
info.sourceLocationType == DRESS_SOURCE_TYPE.SOCKET_TEX
) {
const loadInfo = await ResManager.getInstance().loadAsset({
bundle: "dress-spine",
path: `DressTexture/${info.sourceName}`,
type: SpriteFrame,
});
if (loadInfo.err) {
console.error("加载宠物_socket_tex失败", loadInfo.err);
} else {
if (this.info == info) {
const socketSprite = this.socketNode.getOrAddComponent(Sprite, "Texture");
socketSprite.spriteFrame = loadInfo.asset as SpriteFrame;
} else {
console.warn("加载宠物_socket_tex失败但是不是当前宠物");
ResManager.getInstance().releaseAsset(loadInfo.asset);
}
}
} else if (
info.sourceLocationType == DRESS_SOURCE_TYPE.SOCKET_SPINE ||
info.sourceLocationType == DRESS_SOURCE_TYPE.SOCKET_SPINE_FACE
) {
const loadInfo = await ResManager.getInstance().loadAsset({
bundle: "dress-spine",
path: `DressSpine/${info.sourceName}/${info.sourceName}`,
type: sp.SkeletonData,
});
if (loadInfo.err) {
console.error("加载宠物_socket_spine失败", loadInfo.err);
} else {
if (this.info == info) {
const spine = this.socketNode.getOrAddComponent(sp.Skeleton, "Spine");
spine.animation = undefined;
spine.skeletonData = loadInfo.asset as sp.SkeletonData;
spine.setAnimation(0, "idle", true);
} else {
console.warn("加载宠物_socket_spine失败但是不是当前宠物");
ResManager.getInstance().releaseAsset(loadInfo.asset);
}
}
}
this.socketNode.setParent(partSkeleton.node);
const socket = this.getSocketNode(partSkeleton, bonePath);
this.socketNode.layer = partSkeleton.node.layer;
socket.target = this.socketNode;
const socketSpine = this.socketNode.getOrAddComponent(sp.Skeleton);
if (socketSpine && socketSpine.skeletonData) {
socketSpine.setAnimation(0, "idle", true);
}
// eslint-disable-next-line no-self-assign
partSkeleton.sockets = partSkeleton.sockets;
this.setSocketZIndex();
}
protected setSocketZIndex() {
if (this.socketNode) {
this.socketNode.setSiblingIndex(0);
}
}
}

View File

@@ -2,7 +2,7 @@
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "72082034-0f4c-43b7-b108-0019caeec10a",
"uuid": "e07784d9-9898-4cde-b467-3deaba247a36",
"files": [],
"subMetas": {},
"userData": {}

View File

@@ -0,0 +1,82 @@
import { Component, _decorator, sp } from "cc";
import { COMMON_FACE_ANIM, DRESS_PART, IDressInfo, PET_ANIM_NAME, PET_BODY_FACE_ANIM_MAP, PetInfo } from "./Types";
import { autoBind } from "@max-studio/core/ui/UIDecorator";
import { BasePart } from "./BasePart";
import { GlarePart } from "./GlarePart";
const { ccclass } = _decorator;
@ccclass("BasePet")
export class BasePet extends Component {
private petInfo: PetInfo;
@autoBind("RootNode/PetAni", sp.Skeleton)
private petBodySkeleton: sp.Skeleton = null;
@autoBind("RootNode/PetAni/face", sp.Skeleton)
private petFace: sp.Skeleton = null;
private parts: Map<DRESS_PART, BasePart> = new Map();
protected onLoad(): void {
this.parts.set(DRESS_PART.GLARE, new GlarePart(this.petBodySkeleton, DRESS_PART.GLARE));
this.parts.set(DRESS_PART.BAG, new BasePart(this.petBodySkeleton, DRESS_PART.BAG));
this.parts.set(DRESS_PART.GLASSES, new BasePart(this.petBodySkeleton, DRESS_PART.GLASSES));
this.parts.set(DRESS_PART.HAT, new BasePart(this.petBodySkeleton, DRESS_PART.HAT));
this.parts.set(DRESS_PART.ACCESS, new BasePart(this.petBodySkeleton, DRESS_PART.ACCESS));
}
public setInfo(info: PetInfo) {
this.petInfo = info;
}
public getInfo(): PetInfo {
return this.petInfo;
}
public async putOn(info: IDressInfo) {
const { type, sourceLocationType, sourceName } = info;
if (type == DRESS_PART.SUIT) {
if (info.dressMap) {
info.dressMap.forEach(async (dressInfo) => {
await this.parts.get(dressInfo.type)?.putOn(dressInfo);
});
}
return;
}
await this.parts.get(type)?.putOn(info);
}
public takeOff(type: DRESS_PART = DRESS_PART.ALL) {
if (type == DRESS_PART.ALL) {
this.parts.forEach((part) => {
part.takeOff();
});
} else {
this.parts.get(type)?.takeOff();
}
}
public playAnim(anim: PET_ANIM_NAME) {
this.petBodySkeleton.setAnimation(0, anim, true);
const faceAnim = PET_BODY_FACE_ANIM_MAP[anim] ?? PET_ANIM_NAME.IDLE;
this.petFace.setAnimation(0, faceAnim, true);
this.setFaceSkinFromAnim(faceAnim);
}
protected setFaceSkinFromAnim(faceAnim: PET_ANIM_NAME) {
let faceSkin: string = faceAnim;
if (!COMMON_FACE_ANIM.includes(faceAnim)) {
faceSkin = `eye/${this.petInfo.name}`;
}
this.petFace.setSkin(faceSkin);
this.petFace._skeleton?.slots.forEach((slot) => {
const slotName = slot.data.name.toLowerCase();
if (slotName.endsWith("_hui")) {
slot.color.a = slotName == `${this.petInfo.name}_hui`.toLowerCase() ? 1 : 0;
}
if (slotName.startsWith("dk")) {
console.log("slotName:", slotName);
}
});
}
}

View File

@@ -2,7 +2,7 @@
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "21febc68-719c-4eab-90d3-193f9f15abba",
"uuid": "5df90b9c-7a32-4e70-b46f-1510986c73d4",
"files": [],
"subMetas": {},
"userData": {}

View File

@@ -0,0 +1,3 @@
import { BasePart } from "./BasePart";
export class FacePart extends BasePart {}

View File

@@ -0,0 +1,9 @@
{
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "dbc0d9b3-b0a1-4121-8e48-9c991101a10b",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@@ -0,0 +1,90 @@
import { easing, instantiate, Node, Prefab, sp, tween, Tween, Vec3 } from "cc";
import { BasePart } from "./BasePart";
import { DRESS_PART, DRESS_SOURCE_TYPE, IDressInfo } from "./Types";
import ResManager from "@max-studio/core/res/ResManager";
const GLARE_NODE_NAME = "glare";
const GLARE_DEFAULT_POSITION = new Vec3(-170, 0, 0);
export class GlarePart extends BasePart {
private glareNode: Node = null;
private glareSpine: sp.Skeleton = null;
private glarePrefab: Prefab = null;
constructor(ske: sp.Skeleton, part: DRESS_PART) {
super(ske, part);
this.getGlareNode();
}
public async putOn(info: IDressInfo) {
this.takeOff();
this.info = info;
const loadInfo = await ResManager.getInstance().loadAsset({
bundle: "dress-spine",
path: `DressGlare/${info.sourceName}`,
type: Prefab,
});
if (loadInfo.err) {
console.error("加载宠物_槽位_失败", loadInfo.err);
return;
}
this.glarePrefab = loadInfo.asset;
const node = instantiate(loadInfo.asset);
node.name = "sp";
node.setParent(this.glareNode);
if (node == null) {
return;
}
this.glareSpine = node.getComponent(sp.Skeleton);
this.glareSpine.setAnimation(0, "animation", false);
this.glareNode.setScale(this.skeleton.node.scale);
Tween.stopAllByTarget(this.glareNode);
const dir = this.glareNode.scale.x;
GLARE_DEFAULT_POSITION.x = dir > 0 ? -170 : 170;
tween(this.glareNode).to(0.35, { position: GLARE_DEFAULT_POSITION }, { easing: easing.sineOut }).start();
if (this.info.sourceLocationType == DRESS_SOURCE_TYPE.NONE) {
this.glareNode.setSiblingIndex(0);
} else {
this.glareNode.setSiblingIndex(this.glareNode.parent.children.length - 1);
}
}
public takeOff() {
if (this.glareSpine == null) {
return;
}
if (this.glareSpine) {
this.glareSpine.node.destroy();
this.glareSpine = null;
}
if (this.glarePrefab) {
ResManager.getInstance().releaseAsset(this.glarePrefab);
this.glarePrefab = null;
}
if (this.glareNode) {
Tween.stopAllByTarget(this.glareNode);
}
this.info = null;
}
private getGlareNode() {
if (this.glareNode) {
return this.glareNode;
}
const root = this.skeleton.node.parent;
if (!root) {
console.error("没有找到根节点");
return null;
}
this.glareNode = new Node(GLARE_NODE_NAME);
this.glareNode.setParent(root);
this.glareNode.setPosition(GLARE_DEFAULT_POSITION);
this.glareNode.setSiblingIndex(0);
return this.glareNode;
}
}

View File

@@ -0,0 +1,9 @@
{
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "f5f29e43-e981-42ee-96c5-b993931e25e4",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@@ -0,0 +1,9 @@
import { BasePart } from "./BasePart";
export class GlassesPart extends BasePart {
protected setSocketZIndex(): void {
if (this.socketNode) {
this.socketNode.setSiblingIndex(this.socketNode.parent.children.length);
}
}
}

View File

@@ -0,0 +1,9 @@
{
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "86abc774-d404-4392-b642-463b5e5470dc",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@@ -0,0 +1,55 @@
import ResManager from "@max-studio/core/res/ResManager";
import { Singleton } from "@max-studio/core/Singleton";
import { instantiate, Prefab } from "cc";
import { BasePet } from "./BasePet";
import { releaseDressSocketNode } from "./PetUtils";
export class PetManager extends Singleton {
private petPrefabCache: Map<string, Prefab> = new Map();
public async getPet(name: string): Promise<BasePet> {
let asset: Prefab = null;
if (this.petPrefabCache.has(name)) {
asset = this.petPrefabCache.get(name);
if (asset == null) {
console.error(`宠物预制体缓存为空 ${name}`);
return null;
}
asset.addRef();
} else {
const loadInfo = await ResManager.getInstance().loadAsset({
bundle: "pet-spine",
path: name,
type: Prefab,
});
if (loadInfo.err) {
console.error(`加载宠物预制体失败 ${name}`, loadInfo.err);
return null;
}
asset = loadInfo.asset;
this.petPrefabCache.set(name, asset);
}
const basePet = instantiate(asset).getOrAddComponent(BasePet);
basePet.setInfo({ name: name });
return basePet;
}
public releasePet(pet: BasePet) {
const petName = pet.getInfo().name;
pet.takeOff();
pet.node.removeFromParent();
pet.node.destroy();
if (this.petPrefabCache.has(petName)) {
const prefab = this.petPrefabCache.get(petName);
ResManager.getInstance().releaseAsset(prefab);
if (prefab.refCount == 0) {
this.petPrefabCache.delete(petName);
console.log(`释放宠物预制体成功 ${petName}`);
}
}
}
protected onRelease(): void {
releaseDressSocketNode();
}
}

View File

@@ -0,0 +1,9 @@
{
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "e9aeecff-fbae-4e76-8620-bb0f5664ad62",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@@ -0,0 +1,29 @@
import ResManager from "@max-studio/core/res/ResManager";
import { Prefab } from "cc";
const DRESS_SOCKET_NODE_PATH = "prefabs/pet/DressSocketNode";
let socketPrefab: Prefab = null;
export async function loadDressSocketNode(): Promise<Prefab> {
if (socketPrefab != null) {
return socketPrefab;
}
const loadInfo = await ResManager.getInstance().loadAsset({
bundle: "games",
path: DRESS_SOCKET_NODE_PATH,
type: Prefab,
});
if (loadInfo.err) {
console.error(`加载 DressSocketNode 失败: ${loadInfo.err}`);
return null;
}
socketPrefab = loadInfo.asset;
return socketPrefab;
}
export function releaseDressSocketNode() {
if (socketPrefab != null) {
ResManager.getInstance().releaseAsset(socketPrefab);
socketPrefab = null;
}
}

View File

@@ -0,0 +1,9 @@
{
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "ccf9a987-4dc8-4993-856e-b9ea38c19731",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@@ -0,0 +1,125 @@
export interface PetInfo {
name: string;
petId?: string;
}
export interface IDressInfo {
/**
* 装扮部位
*/
type: DRESS_PART;
sourceLocationType: DRESS_SOURCE_TYPE;
sourceName: string;
/**
* 套装信息
*/
dressMap?: Map<number, IDressInfo>;
}
export enum DRESS_PART {
/**
* 套装
*/
SUIT = 0,
/**
* 背包
*/
BAG = 1,
/**
* 帽子
*/
HAT = 2,
/**
* 眼镜
*/
GLASSES = 3,
/**
* 附件
*/
ACCESS = 4,
/**
* 炫光
*/
GLARE = 5,
/**
* 所有
*/
ALL = 6,
}
export enum DRESS_SOURCE_TYPE {
NONE = 0,
/**
* 槽位
*/
SLOT = 1,
/**
* 挂点静态图
*/
SOCKET_TEX = 2,
/**
* 挂点动画
*/
SOCKET_SPINE = 3,
/**
* 挂点静态图-脸
*/
SOCKET_TEX_FACE = 4,
/**
* 挂点动画-脸
*/
SOCKET_SPINE_FACE = 5,
}
export const SPINE_SLOT: Record<number, string> = {
[DRESS_PART.BAG]: "glasses/bag",
[DRESS_PART.HAT]: "glasses/zs_hat_01",
[DRESS_PART.GLASSES]: "glasses/zs_glass_01",
[DRESS_PART.ACCESS]: "glasses/zs_hdi_01",
};
export const SPINE_SOCKET: Record<number, string> = {
[DRESS_PART.BAG]: "Bag",
[DRESS_PART.HAT]: "Hat",
[DRESS_PART.GLASSES]: "Glasses",
[DRESS_PART.ACCESS]: "ZS",
};
export enum PET_ANIM_NAME {
IDLE = "idle",
HAPPY = "happy",
SLEEP = "sleep",
VERTIGO = "vertigo",
EAT = "eat",
MOTOU = "motou",
RUN = "run",
WALK = "walk",
PLAY = "hudong_hudie",
ANGRY = "angry",
}
export const PET_BODY_FACE_ANIM_MAP: Record<PET_ANIM_NAME, PET_ANIM_NAME> = {
[PET_ANIM_NAME.IDLE]: PET_ANIM_NAME.IDLE,
[PET_ANIM_NAME.HAPPY]: PET_ANIM_NAME.HAPPY,
[PET_ANIM_NAME.SLEEP]: PET_ANIM_NAME.SLEEP,
[PET_ANIM_NAME.VERTIGO]: PET_ANIM_NAME.VERTIGO,
[PET_ANIM_NAME.EAT]: PET_ANIM_NAME.HAPPY,
[PET_ANIM_NAME.MOTOU]: PET_ANIM_NAME.MOTOU,
[PET_ANIM_NAME.RUN]: PET_ANIM_NAME.IDLE,
[PET_ANIM_NAME.WALK]: PET_ANIM_NAME.IDLE,
[PET_ANIM_NAME.PLAY]: PET_ANIM_NAME.HAPPY,
[PET_ANIM_NAME.ANGRY]: PET_ANIM_NAME.ANGRY,
};
export const COMMON_FACE_ANIM = [PET_ANIM_NAME.SLEEP, PET_ANIM_NAME.ANGRY, PET_ANIM_NAME.VERTIGO, PET_ANIM_NAME.HAPPY];

View File

@@ -0,0 +1,9 @@
{
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "25f7a591-83b6-4490-9f3f-bc18d0dfbf76",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@@ -0,0 +1,3 @@
// import BasePet from "./BasePet";
export { PetManager } from "./PetManager";
export { BasePet } from "./BasePet";

View File

@@ -0,0 +1,9 @@
{
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "d269dbc8-fcc2-48c2-8f83-4c35dcb4a760",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@@ -1,9 +1,9 @@
import BaseToast from "@max-studio/core/ui/BaseToast";
import { uiConfig, UIType } from "@max-studio/core/ui/UIDecorator";
import UIManager from "@max-studio/core/ui/UIManager";
import { SpriteAtlas, tween, Vec3, UITransform } from "cc";
import { SpriteAtlas, tween, Vec3 } from "cc";
import { RichText } from "cc";
import { _decorator, Component, Node } from "cc";
import { _decorator, Node } from "cc";
const { ccclass, property } = _decorator;
@uiConfig({

View File

@@ -1,14 +1,10 @@
import { _decorator } from "cc";
import { _decorator, SpriteFrame } from "cc";
import BaseLayer from "@max-studio/core/ui/BaseLayer";
import { uiConfig, UIType } from "@max-studio/core/ui/UIDecorator";
import UIManager from "@max-studio/core/ui/UIManager";
import { CommonDialogBox } from "./CommonDialogBox";
import { CommonToast } from "./CommonToast";
import { ResManager } from "@max-studio/core/res/ResManager";
import { SpriteAtlas } from "cc";
import { uiConfig } from "@max-studio/core/ui/UIDecorator";
const { ccclass, property, menu } = _decorator;
const globalSpriteFrame: SpriteFrame | null = null; // 全局变量
@ccclass("MainUI")
@uiConfig({
@@ -17,6 +13,4 @@ const { ccclass, property, menu } = _decorator;
isCache: false,
})
@menu("max/ui/MainUI")
export class MainUI extends BaseLayer {
async onShow(...args: any[]) {}
}
export class MainUI extends BaseLayer {}

View File

@@ -17,7 +17,7 @@ const { ccclass, property, menu } = _decorator;
export class ShopUI extends BaseLayer {
protected onLoad(): void {
// ProtoDefinitions.pkg1.User
let user = new ProtoDefinitions.pkg1.User();
const user = new ProtoDefinitions.pkg1.User();
console.log(user, ProtoDefinitions.pkg1.User.encode(user));
}
}

View File

@@ -1,16 +1,17 @@
/* eslint-disable no-console */
import { _decorator, Component, profiler } from "cc";
import { _decorator, Component } from "cc";
import { SingletonRegistry } from "@max-studio/core/Singleton";
import UIManager from "@max-studio/core/ui/UIManager";
import { ResManager } from "@max-studio/core/res/ResManager";
import LogUtils from "@max-studio/core/utils/LogUtils";
// import { ResManager } from "@max-studio/core/res/ResManager";
const { ccclass, property } = _decorator;
@ccclass("GameEntry")
export class GameEntry extends Component {
protected async onLoad() {
await ResManager.getInstance().loadLocalBundle("games");
// await ResManager.getInstance().loadLocalBundle("games");
LogUtils.log("GameEntry onLoad");
await SingletonRegistry.initializeAutoInstances();
void UIManager.getInstance().openUI("MainUI");
}

View File

@@ -0,0 +1,11 @@
{
"ver": "1.2.0",
"importer": "directory",
"imported": true,
"uuid": "01fff515-2b81-4c4f-8d5b-2c6c577d4dec",
"files": [],
"subMetas": {},
"userData": {
"isBundle": true
}
}

View File

@@ -0,0 +1,9 @@
{
"ver": "1.2.0",
"importer": "directory",
"imported": true,
"uuid": "4c8f25b6-4042-440e-b34c-7d32cd19f34a",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@@ -0,0 +1,146 @@
[
{
"__type__": "cc.Prefab",
"_name": "qingshu",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "qingshu",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [],
"_active": true,
"_components": [
{
"__id__": 2
},
{
"__id__": 4
}
],
"_prefab": {
"__id__": 6
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 3
},
"_contentSize": {
"__type__": "cc.Size",
"width": 100,
"height": 100
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.065909
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "6dCCNQF+hBT7kv4BnurSF+"
},
{
"__type__": "sp.Skeleton",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 5
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_skeletonData": {
"__uuid__": "85836faf-542d-406a-bd77-5324821f4e4b",
"__expectedType__": "sp.SkeletonData"
},
"defaultSkin": "default",
"defaultAnimation": "",
"_premultipliedAlpha": false,
"_timeScale": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
"_debugBones": false,
"_debugSlots": false,
"_enableBatch": false,
"loop": true,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "9d50LdJU9L06z1wdXDPtyn"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "47/YWMddlM96xgkpMzZgFL",
"targetOverrides": null
}
]

View File

@@ -0,0 +1,13 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "a2c4dc52-a5c5-4afa-bcef-72e455fd4af7",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "qingshu"
}
}

View File

@@ -0,0 +1,146 @@
[
{
"__type__": "cc.Prefab",
"_name": "tanghulu",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "tanghulu",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [],
"_active": true,
"_components": [
{
"__id__": 2
},
{
"__id__": 4
}
],
"_prefab": {
"__id__": 6
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 3
},
"_contentSize": {
"__type__": "cc.Size",
"width": 100,
"height": 100
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.065909
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "53d5kpD3JD9KTcAiXTyofZ"
},
{
"__type__": "sp.Skeleton",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 5
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_skeletonData": {
"__uuid__": "6731183c-837f-46f4-9abd-c582f638dd8a",
"__expectedType__": "sp.SkeletonData"
},
"defaultSkin": "default",
"defaultAnimation": "",
"_premultipliedAlpha": false,
"_timeScale": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
"_debugBones": false,
"_debugSlots": false,
"_enableBatch": false,
"loop": true,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "6b7w7KaLdDeIra1jxeO4YW"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "851s6A7axM15f6QasHbOiL",
"targetOverrides": null
}
]

View File

@@ -0,0 +1,13 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "4b1e784e-6165-4fb7-9b39-4c1e96355487",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "tanghulu"
}
}

View File

@@ -0,0 +1,147 @@
[
{
"__type__": "cc.Prefab",
"_name": "wing_20525",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "wing_20525",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [],
"_active": true,
"_components": [
{
"__id__": 2
},
{
"__id__": 4
}
],
"_prefab": {
"__id__": 6
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 3
},
"_contentSize": {
"__type__": "cc.Size",
"width": 271.00018310546875,
"height": 318.0005798339844
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5289935940155858,
"y": 0.12298568756985802
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "53d5kpD3JD9KTcAiXTyofZ"
},
{
"__type__": "sp.Skeleton",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 5
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_skeletonData": {
"__uuid__": "e9b4e6b7-6234-4639-a751-1c133d276758",
"__expectedType__": "sp.SkeletonData"
},
"defaultSkin": "default",
"defaultAnimation": "",
"_premultipliedAlpha": false,
"_timeScale": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
"_debugBones": false,
"_debugSlots": false,
"_enableBatch": false,
"loop": true,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "6b7w7KaLdDeIra1jxeO4YW"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "851s6A7axM15f6QasHbOiL",
"instance": null,
"targetOverrides": null
}
]

View File

@@ -0,0 +1,13 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "e0c131e9-d89d-474a-95d0-5bac601c15e6",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "wing_20525"
}
}

View File

@@ -0,0 +1,147 @@
[
{
"__type__": "cc.Prefab",
"_name": "wing_20530",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "wing_20530",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [],
"_active": true,
"_components": [
{
"__id__": 2
},
{
"__id__": 4
}
],
"_prefab": {
"__id__": 6
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 3
},
"_contentSize": {
"__type__": "cc.Size",
"width": 354.00006103515625,
"height": 328.00006103515625
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.6534400287451398,
"y": 0.06201947616586896
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "53d5kpD3JD9KTcAiXTyofZ"
},
{
"__type__": "sp.Skeleton",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 5
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_skeletonData": {
"__uuid__": "55858a9c-4b83-44d5-ad03-6bfd9535c0aa",
"__expectedType__": "sp.SkeletonData"
},
"defaultSkin": "default",
"defaultAnimation": "",
"_premultipliedAlpha": false,
"_timeScale": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
"_debugBones": false,
"_debugSlots": false,
"_enableBatch": false,
"loop": true,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "6b7w7KaLdDeIra1jxeO4YW"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "851s6A7axM15f6QasHbOiL",
"instance": null,
"targetOverrides": null
}
]

View File

@@ -0,0 +1,13 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "0cd515dd-f0d4-488b-97bf-d4891717564c",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "wing_20530"
}
}

View File

@@ -0,0 +1,147 @@
[
{
"__type__": "cc.Prefab",
"_name": "wing_20535",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "wing_20535",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [],
"_active": true,
"_components": [
{
"__id__": 2
},
{
"__id__": 4
}
],
"_prefab": {
"__id__": 6
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 3
},
"_contentSize": {
"__type__": "cc.Size",
"width": 227.34063720703125,
"height": 298.5545349121094
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.8504586483545603,
"y": 0.0564488167526744
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "53d5kpD3JD9KTcAiXTyofZ"
},
{
"__type__": "sp.Skeleton",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 5
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_skeletonData": {
"__uuid__": "e0ed15c4-6a0c-4fee-8cce-5ed5c30558cf",
"__expectedType__": "sp.SkeletonData"
},
"defaultSkin": "default",
"defaultAnimation": "",
"_premultipliedAlpha": false,
"_timeScale": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
"_debugBones": false,
"_debugSlots": false,
"_enableBatch": false,
"loop": true,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "6b7w7KaLdDeIra1jxeO4YW"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "851s6A7axM15f6QasHbOiL",
"instance": null,
"targetOverrides": null
}
]

View File

@@ -0,0 +1,13 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "86e70802-060c-4f5e-a5d8-540c40b6655c",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "wing_20535"
}
}

View File

@@ -0,0 +1,147 @@
[
{
"__type__": "cc.Prefab",
"_name": "wing_20540",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "wing_20540",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [],
"_active": true,
"_components": [
{
"__id__": 2
},
{
"__id__": 4
}
],
"_prefab": {
"__id__": 6
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 3
},
"_contentSize": {
"__type__": "cc.Size",
"width": 136.00001525878906,
"height": 148
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5389241567584592,
"y": 0.3584182326858108
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "53d5kpD3JD9KTcAiXTyofZ"
},
{
"__type__": "sp.Skeleton",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 5
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_skeletonData": {
"__uuid__": "d0008149-acc8-43dd-bbad-46b69c91b322",
"__expectedType__": "sp.SkeletonData"
},
"defaultSkin": "default",
"defaultAnimation": "idle",
"_premultipliedAlpha": false,
"_timeScale": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
"_debugBones": false,
"_debugSlots": false,
"_enableBatch": false,
"loop": true,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "6b7w7KaLdDeIra1jxeO4YW"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "851s6A7axM15f6QasHbOiL",
"instance": null,
"targetOverrides": null
}
]

View File

@@ -0,0 +1,13 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "e2e2adc9-6743-4f31-8b34-060a7a7042fb",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "wing_20540"
}
}

View File

@@ -0,0 +1,147 @@
[
{
"__type__": "cc.Prefab",
"_name": "wing_20545",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "wing_20545",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [],
"_active": true,
"_components": [
{
"__id__": 2
},
{
"__id__": 4
}
],
"_prefab": {
"__id__": 6
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 3
},
"_contentSize": {
"__type__": "cc.Size",
"width": 180.03170776367188,
"height": 193.02955627441406
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.48493095512180384,
"y": 0.6483273829215475
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "53d5kpD3JD9KTcAiXTyofZ"
},
{
"__type__": "sp.Skeleton",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 5
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_skeletonData": {
"__uuid__": "872840d5-ad04-4e91-8d55-2d82e1378c21",
"__expectedType__": "sp.SkeletonData"
},
"defaultSkin": "default",
"defaultAnimation": "",
"_premultipliedAlpha": false,
"_timeScale": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
"_debugBones": false,
"_debugSlots": false,
"_enableBatch": false,
"loop": true,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "6b7w7KaLdDeIra1jxeO4YW"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "851s6A7axM15f6QasHbOiL",
"instance": null,
"targetOverrides": null
}
]

View File

@@ -0,0 +1,13 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "32b98e3a-0605-414a-b81d-cedb4a3961a1",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "wing_20545"
}
}

View File

@@ -0,0 +1,147 @@
[
{
"__type__": "cc.Prefab",
"_name": "wing_20550",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "wing_20550",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [],
"_active": true,
"_components": [
{
"__id__": 2
},
{
"__id__": 4
}
],
"_prefab": {
"__id__": 6
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 3
},
"_contentSize": {
"__type__": "cc.Size",
"width": 207,
"height": 263
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5630527441052423,
"y": 0.10309525406405953
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "53d5kpD3JD9KTcAiXTyofZ"
},
{
"__type__": "sp.Skeleton",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 5
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_skeletonData": {
"__uuid__": "0a5300ef-8bf3-4a0c-ac9a-d6f1c55e3b79",
"__expectedType__": "sp.SkeletonData"
},
"defaultSkin": "default",
"defaultAnimation": "",
"_premultipliedAlpha": false,
"_timeScale": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
"_debugBones": false,
"_debugSlots": false,
"_enableBatch": false,
"loop": true,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "6b7w7KaLdDeIra1jxeO4YW"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "851s6A7axM15f6QasHbOiL",
"instance": null,
"targetOverrides": null
}
]

View File

@@ -0,0 +1,13 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "3f5400cb-0736-494b-82d1-0b7cc5d2c19a",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "wing_20550"
}
}

View File

@@ -0,0 +1,147 @@
[
{
"__type__": "cc.Prefab",
"_name": "wing_20555",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "wing_20555",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [],
"_active": true,
"_components": [
{
"__id__": 2
},
{
"__id__": 4
}
],
"_prefab": {
"__id__": 6
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 3
},
"_contentSize": {
"__type__": "cc.Size",
"width": 345.00006103515625,
"height": 255.77902221679688
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.543926684583283,
"y": 0.43865878322712754
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "53d5kpD3JD9KTcAiXTyofZ"
},
{
"__type__": "sp.Skeleton",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 5
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_skeletonData": {
"__uuid__": "04337f7c-8ad4-47cd-aef8-3056964395b3",
"__expectedType__": "sp.SkeletonData"
},
"defaultSkin": "default",
"defaultAnimation": "",
"_premultipliedAlpha": false,
"_timeScale": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
"_debugBones": false,
"_debugSlots": false,
"_enableBatch": false,
"loop": true,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "6b7w7KaLdDeIra1jxeO4YW"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "851s6A7axM15f6QasHbOiL",
"instance": null,
"targetOverrides": null
}
]

View File

@@ -0,0 +1,13 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "1d0e6cd9-f8cb-4088-9627-e948184bdd6a",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "wing_20555"
}
}

View File

@@ -0,0 +1,147 @@
[
{
"__type__": "cc.Prefab",
"_name": "wing_20560",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "wing_20560",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [],
"_active": true,
"_components": [
{
"__id__": 2
},
{
"__id__": 4
}
],
"_prefab": {
"__id__": 6
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 3
},
"_contentSize": {
"__type__": "cc.Size",
"width": 70.00001525878906,
"height": 198.99996948242188
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.6470417247136308,
"y": 0.0033598047166074384
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "53d5kpD3JD9KTcAiXTyofZ"
},
{
"__type__": "sp.Skeleton",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 5
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_skeletonData": {
"__uuid__": "64ae9575-87b3-4c11-bff6-78a6fc24610f",
"__expectedType__": "sp.SkeletonData"
},
"defaultSkin": "default",
"defaultAnimation": "",
"_premultipliedAlpha": false,
"_timeScale": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
"_debugBones": false,
"_debugSlots": false,
"_enableBatch": false,
"loop": true,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "6b7w7KaLdDeIra1jxeO4YW"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "851s6A7axM15f6QasHbOiL",
"instance": null,
"targetOverrides": null
}
]

View File

@@ -0,0 +1,13 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "18cd1dd5-bd33-4768-8a00-0d460822d494",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "wing_20560"
}
}

View File

@@ -0,0 +1,147 @@
[
{
"__type__": "cc.Prefab",
"_name": "wing_20565",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "wing_20565",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [],
"_active": true,
"_components": [
{
"__id__": 2
},
{
"__id__": 4
}
],
"_prefab": {
"__id__": 6
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 3
},
"_contentSize": {
"__type__": "cc.Size",
"width": 284.00006103515625,
"height": 282.8384094238281
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.4940037807402746,
"y": 0.1981014963343418
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "53d5kpD3JD9KTcAiXTyofZ"
},
{
"__type__": "sp.Skeleton",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 5
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_skeletonData": {
"__uuid__": "cfc5147c-b91e-4678-8305-a564f6f04ba0",
"__expectedType__": "sp.SkeletonData"
},
"defaultSkin": "default",
"defaultAnimation": "",
"_premultipliedAlpha": false,
"_timeScale": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
"_debugBones": false,
"_debugSlots": false,
"_enableBatch": false,
"loop": true,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "6b7w7KaLdDeIra1jxeO4YW"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "851s6A7axM15f6QasHbOiL",
"instance": null,
"targetOverrides": null
}
]

View File

@@ -0,0 +1,13 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "0129a258-0dee-44b7-9738-51d87aa66b7f",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "wing_20565"
}
}

View File

@@ -0,0 +1,147 @@
[
{
"__type__": "cc.Prefab",
"_name": "wing_20570",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "wing_20570",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [],
"_active": true,
"_components": [
{
"__id__": 2
},
{
"__id__": 4
}
],
"_prefab": {
"__id__": 6
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 3
},
"_contentSize": {
"__type__": "cc.Size",
"width": 138,
"height": 142.8177947998047
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5425794850225034,
"y": 0.01483735014354616
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "53d5kpD3JD9KTcAiXTyofZ"
},
{
"__type__": "sp.Skeleton",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 5
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_skeletonData": {
"__uuid__": "010a1dea-c45b-467b-9158-b2cf8d89de4b",
"__expectedType__": "sp.SkeletonData"
},
"defaultSkin": "default",
"defaultAnimation": "",
"_premultipliedAlpha": false,
"_timeScale": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
"_debugBones": false,
"_debugSlots": false,
"_enableBatch": false,
"loop": true,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "6b7w7KaLdDeIra1jxeO4YW"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "851s6A7axM15f6QasHbOiL",
"instance": null,
"targetOverrides": null
}
]

View File

@@ -0,0 +1,13 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "3168fd3d-c563-4748-847c-9f867379dd28",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "wing_20570"
}
}

View File

@@ -0,0 +1,147 @@
[
{
"__type__": "cc.Prefab",
"_name": "wing_20575",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "wing_20575",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [],
"_active": true,
"_components": [
{
"__id__": 2
},
{
"__id__": 4
}
],
"_prefab": {
"__id__": 6
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 3
},
"_contentSize": {
"__type__": "cc.Size",
"width": 285.5130310058594,
"height": 253.36717224121094
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.653816163872877,
"y": 0.2638453360503198
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "53d5kpD3JD9KTcAiXTyofZ"
},
{
"__type__": "sp.Skeleton",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 5
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_skeletonData": {
"__uuid__": "86b2db4c-316e-4f8c-8386-b94f62cd30aa",
"__expectedType__": "sp.SkeletonData"
},
"defaultSkin": "default",
"defaultAnimation": "idle",
"_premultipliedAlpha": false,
"_timeScale": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
"_debugBones": false,
"_debugSlots": false,
"_enableBatch": false,
"loop": true,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "6b7w7KaLdDeIra1jxeO4YW"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "851s6A7axM15f6QasHbOiL",
"instance": null,
"targetOverrides": null
}
]

View File

@@ -0,0 +1,13 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "0e631ad3-bc27-4dd6-8dda-30444d7590d9",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "wing_20575"
}
}

View File

@@ -0,0 +1,147 @@
[
{
"__type__": "cc.Prefab",
"_name": "wing_20580",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "wing_20580",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [],
"_active": true,
"_components": [
{
"__id__": 2
},
{
"__id__": 4
}
],
"_prefab": {
"__id__": 6
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 3
},
"_contentSize": {
"__type__": "cc.Size",
"width": 369.5897216796875,
"height": 314.50653076171875
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5481384420210993,
"y": 0.18727841253669067
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "53d5kpD3JD9KTcAiXTyofZ"
},
{
"__type__": "sp.Skeleton",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 5
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_skeletonData": {
"__uuid__": "e0be5b5a-2c00-43ce-88bd-4d47a9f2f0a9",
"__expectedType__": "sp.SkeletonData"
},
"defaultSkin": "default",
"defaultAnimation": "",
"_premultipliedAlpha": false,
"_timeScale": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
"_debugBones": false,
"_debugSlots": false,
"_enableBatch": false,
"loop": true,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "6b7w7KaLdDeIra1jxeO4YW"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "851s6A7axM15f6QasHbOiL",
"instance": null,
"targetOverrides": null
}
]

View File

@@ -0,0 +1,13 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "fe5214ae-ba3a-4a07-95d7-a125e4b0bf0f",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "wing_20580"
}
}

View File

@@ -0,0 +1,147 @@
[
{
"__type__": "cc.Prefab",
"_name": "wing_20585",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "wing_20585",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [],
"_active": true,
"_components": [
{
"__id__": 2
},
{
"__id__": 4
}
],
"_prefab": {
"__id__": 6
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 3
},
"_contentSize": {
"__type__": "cc.Size",
"width": 312.00006103515625,
"height": 341
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5380243569350889,
"y": 0.20604828865297378
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "53d5kpD3JD9KTcAiXTyofZ"
},
{
"__type__": "sp.Skeleton",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 5
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_skeletonData": {
"__uuid__": "f236addc-e498-412a-949d-a261eb410e96",
"__expectedType__": "sp.SkeletonData"
},
"defaultSkin": "default",
"defaultAnimation": "",
"_premultipliedAlpha": false,
"_timeScale": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
"_debugBones": false,
"_debugSlots": false,
"_enableBatch": false,
"loop": true,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "6b7w7KaLdDeIra1jxeO4YW"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "851s6A7axM15f6QasHbOiL",
"instance": null,
"targetOverrides": null
}
]

View File

@@ -0,0 +1,13 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "cb3b91e6-890d-47ce-96fa-56ea3c7135fe",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "wing_20585"
}
}

View File

@@ -0,0 +1,147 @@
[
{
"__type__": "cc.Prefab",
"_name": "yanyuedao",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "yanyuedao",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [],
"_active": true,
"_components": [
{
"__id__": 2
},
{
"__id__": 4
}
],
"_prefab": {
"__id__": 6
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 3
},
"_contentSize": {
"__type__": "cc.Size",
"width": 100,
"height": 100
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.065909
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "3139bAYx9Bf5g7Yo8ENIe4"
},
{
"__type__": "sp.Skeleton",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 5
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_skeletonData": {
"__uuid__": "286f1f73-4cf2-4bc0-8035-ddc147dd21a0",
"__expectedType__": "sp.SkeletonData"
},
"defaultSkin": "default",
"defaultAnimation": "idle",
"_premultipliedAlpha": false,
"_timeScale": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
"_debugBones": false,
"_debugSlots": false,
"_enableBatch": false,
"loop": true,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "59P9cFOFNA1KDzI21nblSi"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "01SUH/wltB46irGFM5go0B",
"instance": null,
"targetOverrides": null
}
]

View File

@@ -0,0 +1,13 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "8173ecc4-d3a3-401f-8edc-871c8282e25e",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "yanyuedao"
}
}

View File

@@ -0,0 +1,281 @@
[
{
"__type__": "cc.Prefab",
"_name": "DressGlareNode",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "DressGlareNode",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [
{
"__id__": 2
}
],
"_active": true,
"_components": [
{
"__id__": 8
},
{
"__id__": 10
}
],
"_prefab": {
"__id__": 12
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.Node",
"_name": "sp",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 1
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 3
},
{
"__id__": 5
}
],
"_prefab": {
"__id__": 7
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 2
},
"_enabled": true,
"__prefab": {
"__id__": 4
},
"_contentSize": {
"__type__": "cc.Size",
"width": 100,
"height": 100
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.065908535599485
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "e4k0ZJZ+ZP1pdjaXKsIsMq"
},
{
"__type__": "sp.Skeleton",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 2
},
"_enabled": true,
"__prefab": {
"__id__": 6
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_skeletonData": null,
"defaultSkin": "",
"defaultAnimation": "",
"_premultipliedAlpha": false,
"_timeScale": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
"_debugBones": false,
"_debugSlots": false,
"_enableBatch": false,
"loop": true,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "64O5Yu6nNGhK8eG2ZGH+RH"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "74soPwdX9L9bpej8KWCxOK",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 9
},
"_contentSize": {
"__type__": "cc.Size",
"width": 100,
"height": 100
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "aaaWd3sotEbJuZoi9tNGUI"
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 11
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_spriteFrame": null,
"_type": 0,
"_fillType": 0,
"_sizeMode": 1,
"_fillCenter": {
"__type__": "cc.Vec2",
"x": 0,
"y": 0
},
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": true,
"_useGrayscale": false,
"_atlas": null,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "829bU5W1hIyqHFCiY3Pzpy"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "d3R8XqWlJHQ74lKjsw7RdZ",
"instance": null,
"targetOverrides": null
}
]

View File

@@ -0,0 +1,13 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "3ba6771c-92ea-4656-88b4-baff7d40e9a9",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "DressGlareNode"
}
}

View File

@@ -0,0 +1,372 @@
[
{
"__type__": "cc.Prefab",
"_name": "DressSocketNode",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "DressSocketNode",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [
{
"__id__": 2
},
{
"__id__": 8
}
],
"_active": true,
"_components": [
{
"__id__": 14
}
],
"_prefab": {
"__id__": 16
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.Node",
"_name": "nodeTexture",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 1
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 3
},
{
"__id__": 5
}
],
"_prefab": {
"__id__": 7
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 2
},
"_enabled": true,
"__prefab": {
"__id__": 4
},
"_contentSize": {
"__type__": "cc.Size",
"width": 47,
"height": 24
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "d5vgRqi61GY43Asa6Qv4ax"
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 2
},
"_enabled": true,
"__prefab": {
"__id__": 6
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_spriteFrame": null,
"_type": 0,
"_fillType": 0,
"_sizeMode": 2,
"_fillCenter": {
"__type__": "cc.Vec2",
"x": 0,
"y": 0
},
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": false,
"_useGrayscale": false,
"_atlas": null,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "29I3tLV+NM07au0NCC08qj"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "147PbRaOBIrpBHx8uBXKTf",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.Node",
"_name": "nodeSpine",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 1
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 9
},
{
"__id__": 11
}
],
"_prefab": {
"__id__": 13
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 8
},
"_enabled": true,
"__prefab": {
"__id__": 10
},
"_contentSize": {
"__type__": "cc.Size",
"width": 100,
"height": 100
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.6022198305928649
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "afu6QTVkhEvZM/JIqGEiBB"
},
{
"__type__": "sp.Skeleton",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 8
},
"_enabled": true,
"__prefab": {
"__id__": 12
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_skeletonData": null,
"defaultSkin": "",
"defaultAnimation": "",
"_premultipliedAlpha": false,
"_timeScale": 1,
"_preCacheMode": -1,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
"_debugBones": false,
"_debugSlots": false,
"_enableBatch": false,
"loop": true,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "dd1JJBi4VNnI4oHWefEQGy"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "72v3+Z2atCupq60ri3M03C",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 15
},
"_contentSize": {
"__type__": "cc.Size",
"width": 100,
"height": 100
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "67cvXc09ZBwKt9LGRHeb16"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "c46/YsCPVOJYA4mWEpNYRx",
"instance": null,
"targetOverrides": null
}
]

View File

@@ -0,0 +1,13 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "173ed391-5e4a-4a7f-ac3b-ad9d47234ada",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "DressSocketNode"
}
}

View File

@@ -0,0 +1,9 @@
{
"ver": "1.2.0",
"importer": "directory",
"imported": true,
"uuid": "83d11dab-5e29-4b0f-bf8c-81f24f043e1c",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@@ -0,0 +1,9 @@
{
"ver": "1.2.0",
"importer": "directory",
"imported": true,
"uuid": "07533ada-9b00-4ad8-a869-d0946a81fce2",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@@ -0,0 +1,13 @@
Bag.png
size: 76,74
format: RGBA8888
filter: Linear,Linear
repeat: none
glasses/bag
rotate: false
xy: 2, 2
size: 72, 70
orig: 72, 70
offset: 0, 0
index: -1

View File

@@ -0,0 +1,12 @@
{
"ver": "1.0.0",
"importer": "*",
"imported": true,
"uuid": "a336c976-7c6d-4179-a323-27a2d8e6a35e",
"files": [
".atlas",
".json"
],
"subMetas": {},
"userData": {}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@@ -0,0 +1,134 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "1927c6ba-6646-42bb-b00b-d8e14752bce4",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "1927c6ba-6646-42bb-b00b-d8e14752bce4@6c48a",
"displayName": "Bag",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "1927c6ba-6646-42bb-b00b-d8e14752bce4",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "1927c6ba-6646-42bb-b00b-d8e14752bce4@f9941",
"displayName": "Bag",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 3,
"trimY": 3,
"width": 70,
"height": 68,
"rawWidth": 76,
"rawHeight": 74,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-35,
-34,
0,
35,
-34,
0,
-35,
34,
0,
35,
34,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
3,
71,
73,
71,
3,
3,
73,
3
],
"nuv": [
0.039473684210526314,
0.04054054054054054,
0.9605263157894737,
0.04054054054054054,
0.039473684210526314,
0.9594594594594594,
0.9605263157894737,
0.9594594594594594
],
"minPos": [
-35,
-34,
0
],
"maxPos": [
35,
34,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "1927c6ba-6646-42bb-b00b-d8e14752bce4@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "1927c6ba-6646-42bb-b00b-d8e14752bce4@6c48a"
}
}

Binary file not shown.

View File

@@ -0,0 +1,14 @@
{
"ver": "1.2.7",
"importer": "spine-data",
"imported": true,
"uuid": "e94e852d-0474-4e2f-a2c4-1dfca5ee9809",
"files": [
".bin",
".json"
],
"subMetas": {},
"userData": {
"atlasUuid": "a336c976-7c6d-4179-a323-27a2d8e6a35e"
}
}

View File

@@ -0,0 +1,9 @@
{
"ver": "1.2.0",
"importer": "directory",
"imported": true,
"uuid": "bb2d4840-f31d-4483-9f59-356f776bd211",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@@ -0,0 +1,13 @@
Hat.png
size: 121,91
format: RGBA8888
filter: Linear,Linear
repeat: none
glasses/zs_hat_01
rotate: false
xy: 2, 2
size: 117, 87
orig: 117, 87
offset: 0, 0
index: -1

View File

@@ -0,0 +1,12 @@
{
"ver": "1.0.0",
"importer": "*",
"imported": true,
"uuid": "86fdd131-0078-437b-b352-b8fa812b5ab1",
"files": [
".atlas",
".json"
],
"subMetas": {},
"userData": {}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -0,0 +1,134 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "6a0ea5f3-6a29-4f22-aa97-ea75dadb9709",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "6a0ea5f3-6a29-4f22-aa97-ea75dadb9709@6c48a",
"displayName": "Hat",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "6a0ea5f3-6a29-4f22-aa97-ea75dadb9709",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "6a0ea5f3-6a29-4f22-aa97-ea75dadb9709@f9941",
"displayName": "Hat",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 3,
"trimY": 3,
"width": 115,
"height": 85,
"rawWidth": 121,
"rawHeight": 91,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-57.5,
-42.5,
0,
57.5,
-42.5,
0,
-57.5,
42.5,
0,
57.5,
42.5,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
3,
88,
118,
88,
3,
3,
118,
3
],
"nuv": [
0.024793388429752067,
0.03296703296703297,
0.9752066115702479,
0.03296703296703297,
0.024793388429752067,
0.967032967032967,
0.9752066115702479,
0.967032967032967
],
"minPos": [
-57.5,
-42.5,
0
],
"maxPos": [
57.5,
42.5,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "6a0ea5f3-6a29-4f22-aa97-ea75dadb9709@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "6a0ea5f3-6a29-4f22-aa97-ea75dadb9709@6c48a"
}
}

Binary file not shown.

View File

@@ -0,0 +1,14 @@
{
"ver": "1.2.7",
"importer": "spine-data",
"imported": true,
"uuid": "dd2c3a43-9fc5-4e55-be86-b1dd53fe85ee",
"files": [
".bin",
".json"
],
"subMetas": {},
"userData": {
"atlasUuid": "86fdd131-0078-437b-b352-b8fa812b5ab1"
}
}

View File

@@ -0,0 +1,9 @@
{
"ver": "1.2.0",
"importer": "directory",
"imported": true,
"uuid": "d07a776c-1011-4eb8-ab33-04264fa9f81a",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@@ -0,0 +1,188 @@
bag_20511.png
size: 1022,807
format: RGBA8888
filter: Linear,Linear
repeat: none
GY_bag
rotate: true
xy: 5, 689
size: 116, 127
orig: 116, 127
offset: 0, 0
index: -1
glasses/bag
rotate: false
xy: 2, 804
size: 1, 1
orig: 1, 1
offset: 0, 0
index: -1
img_fire5_000
rotate: false
xy: 134, 646
size: 202, 159
orig: 202, 159
offset: 0, 0
index: -1
img_fire5_001
rotate: false
xy: 338, 646
size: 202, 159
orig: 202, 159
offset: 0, 0
index: -1
img_fire5_002
rotate: false
xy: 542, 646
size: 202, 159
orig: 202, 159
offset: 0, 0
index: -1
img_fire5_003
rotate: false
xy: 746, 646
size: 202, 159
orig: 202, 159
offset: 0, 0
index: -1
img_fire5_004
rotate: false
xy: 2, 485
size: 202, 159
orig: 202, 159
offset: 0, 0
index: -1
img_fire5_005
rotate: false
xy: 206, 485
size: 202, 159
orig: 202, 159
offset: 0, 0
index: -1
img_fire5_006
rotate: false
xy: 410, 485
size: 202, 159
orig: 202, 159
offset: 0, 0
index: -1
img_fire5_007
rotate: false
xy: 614, 485
size: 202, 159
orig: 202, 159
offset: 0, 0
index: -1
img_fire5_008
rotate: false
xy: 818, 485
size: 202, 159
orig: 202, 159
offset: 0, 0
index: -1
img_fire5_009
rotate: false
xy: 2, 324
size: 202, 159
orig: 202, 159
offset: 0, 0
index: -1
img_fire5_010
rotate: false
xy: 206, 324
size: 202, 159
orig: 202, 159
offset: 0, 0
index: -1
img_fire5_011
rotate: false
xy: 410, 324
size: 202, 159
orig: 202, 159
offset: 0, 0
index: -1
img_fire5_012
rotate: false
xy: 614, 324
size: 202, 159
orig: 202, 159
offset: 0, 0
index: -1
img_fire5_013
rotate: false
xy: 818, 324
size: 202, 159
orig: 202, 159
offset: 0, 0
index: -1
img_fire5_014
rotate: false
xy: 2, 163
size: 202, 159
orig: 202, 159
offset: 0, 0
index: -1
img_fire5_015
rotate: false
xy: 206, 163
size: 202, 159
orig: 202, 159
offset: 0, 0
index: -1
img_fire5_016
rotate: false
xy: 410, 163
size: 202, 159
orig: 202, 159
offset: 0, 0
index: -1
img_fire5_017
rotate: false
xy: 614, 163
size: 202, 159
orig: 202, 159
offset: 0, 0
index: -1
img_fire5_018
rotate: false
xy: 818, 163
size: 202, 159
orig: 202, 159
offset: 0, 0
index: -1
img_fire5_019
rotate: false
xy: 2, 2
size: 202, 159
orig: 202, 159
offset: 0, 0
index: -1
img_fire5_020
rotate: false
xy: 206, 2
size: 202, 159
orig: 202, 159
offset: 0, 0
index: -1
img_fire5_021
rotate: false
xy: 410, 2
size: 202, 159
orig: 202, 159
offset: 0, 0
index: -1
img_fire5_022
rotate: false
xy: 614, 2
size: 202, 159
orig: 202, 159
offset: 0, 0
index: -1
img_fire5_023
rotate: false
xy: 818, 2
size: 202, 159
orig: 202, 159
offset: 0, 0
index: -1

View File

@@ -0,0 +1,12 @@
{
"ver": "1.0.0",
"importer": "*",
"imported": true,
"uuid": "486b9042-f335-4463-9b0c-fdf158cc6fef",
"files": [
".atlas",
".json"
],
"subMetas": {},
"userData": {}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 477 KiB

Some files were not shown because too many files have changed in this diff Show More