cocos uuid 相关问题一

目录

简介:

通过UUID搜索资源

1.X

2.x

3.x

API

旧版

uuid压缩

uuid解压

新版本

uuid 压缩

uuid 解压

算法:

相关变量声明

uuid生成

uuid验证

uuid压缩

uuid 解压

算法验证

验证前准备与环境

uuidTest.ts.meata

场景中脚本压缩uuid

使用上面算法验证

先压缩uuid

拿到压缩结果在解压

使用cocos自带 API 验证

Editor.Utils.UuidUtils.compressUuid 压缩

Editor.Utils.UuidUtils.decompressUuid  解压

完整代码


简介:

本篇主要记录cocos  uuid 相关API,以及uuid的算法实现,并给出基本的实践结果,3.x  可直接输入uuid即可搜索,1.x、2.x特殊需要加上 u:xxxxxxxx-xxxx-xxxx-xxxxxxxx

通过UUID搜索资源

1.X

2.x

3.x

可直接输入uuid并打印,还可以选中资源右键复制并打印uuid、压缩uuid,打印在cocos编辑器界面的控制界面上

API

旧版

uuid压缩

Editor.UuidUtils.compressUuid 

uuid解压

Editor.UuidUtils.decompressUuid

新版本

uuid 压缩

Editor.Utils.UuidUtils.compressUuid 

uuid 解压

Editor.Utils.UuidUtils.decompressUuid

算法:

相关变量声明

import Uuid from "node-uuid";
let Base64KeyChars =
  "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
for (var AsciiTo64 = new Array(128), i = 0; i < 128; ++i) {
  AsciiTo64[i] = 0;
}
for (i = 0; i < 64; ++i) {
  AsciiTo64[Base64KeyChars.charCodeAt(i)] = i;
}
let Reg_Dash = /-/g;
let Reg_Uuid = /^[0-9a-fA-F-]{36}$/;
let Reg_NormalizedUuid = /^[0-9a-fA-F]{32}$/;
let Reg_CompressedUuid = /^[0-9a-zA-Z+/]{22,23}$/;

uuid生成

static uuid() {
    var uuid = Uuid.v4();
    return UuidUtils.compressUuid(uuid, !0);
  }
static generateUuid() {
    return Uuid.v4();
 }

uuid验证

static isUuid(uuid: string) {
    return (
      Reg_CompressedUuid.test(uuid) ||
      Reg_NormalizedUuid.test(uuid) ||
      Reg_Uuid.test(uuid)
    );
  }

uuid压缩

 static compressUuid(str: string, bool: boolean): string {
    if (Reg_Uuid.test(str)) {
      str = str.replace(Reg_Dash, "");
    } else if (!Reg_NormalizedUuid.test(str)) {
      return str;
    }
    var s = !0 === bool ? 2 : 5;
    return UuidUtils.compressHex(str, s);
  }
  static compressHex(str: string, nu: number): string {
    var s,
      r = str.length;
    s = void 0 !== nu ? nu : r % 3;
    for (var t = str.slice(0, s), o = []; s < r; ) {
      var u = parseInt(str[s], 16),
        d = parseInt(str[s + 1], 16),
        n = parseInt(str[s + 2], 16);
      o.push(Base64KeyChars[(u << 2) | (d >> 2)]),
        o.push(Base64KeyChars[((3 & d) << 4) | n]),
        (s += 3);
    }
    return t + o.join("");
  }

uuid 解压

static decompressUuid(uuid: string): string {
    if (23 === uuid.length) {
      for (var e = [], s = 5; s < 23; s += 2) {
        var r = AsciiTo64[uuid.charCodeAt(s)],
          t = AsciiTo64[uuid.charCodeAt(s + 1)];
        e.push((r >> 2).toString(16)),
          e.push((((3 & r) << 2) | (t >> 4)).toString(16)),
          e.push((15 & t).toString(16));
      }
      uuid = uuid.slice(0, 5) + e.join("");
    } else if (22 === uuid.length) {
      for (e = [], s = 2; s < 22; s += 2) {
        (r = AsciiTo64[uuid.charCodeAt(s)]),
          (t = AsciiTo64[uuid.charCodeAt(s + 1)]);
        e.push((r >> 2).toString(16)),
          e.push((((3 & r) << 2) | (t >> 4)).toString(16)),
          e.push((15 & t).toString(16));
      }
      uuid = uuid.slice(0, 2) + e.join("");
    }

算法验证

验证前准备与环境

验证方式,在cocos编辑器中创建一个脚本uuidTest.ts,把脚本挂载到场景中。从脚本的meta中拿到uuid,从场景中找到脚本的压缩uuid  __type__

uuidTest.ts.meata

uuidTest.ts的uuid:3544b289-5268-4630-9adf-aee75ec297ea

场景中脚本压缩uuid

压缩后的:3544bKJUmhGMJrfrudewpfq

使用上面算法验证

  • 先压缩uuid

  • 拿到压缩结果在解压

使用cocos自带 API 验证

Editor.Utils.UuidUtils.compressUuid 压缩

Editor.Utils.UuidUtils.decompressUuid  解压

结果可以看到与算法得出结果一致,算法可用。

完整代码

import Uuid from "node-uuid";
let Base64KeyChars =
  "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
for (var AsciiTo64 = new Array(128), i = 0; i < 128; ++i) {
  AsciiTo64[i] = 0;
}
for (i = 0; i < 64; ++i) {
  AsciiTo64[Base64KeyChars.charCodeAt(i)] = i;
}
let Reg_Dash = /-/g;
let Reg_Uuid = /^[0-9a-fA-F-]{36}$/;
let Reg_NormalizedUuid = /^[0-9a-fA-F]{32}$/;
let Reg_CompressedUuid = /^[0-9a-zA-Z+/]{22,23}$/;

export default class UuidUtils {
  static NonUuidMark: ".";
  static compressUuid(str: string, bool: boolean): string {
    if (Reg_Uuid.test(str)) {
      str = str.replace(Reg_Dash, "");
    } else if (!Reg_NormalizedUuid.test(str)) {
      return str;
    }
    var s = !0 === bool ? 2 : 5;
    return UuidUtils.compressHex(str, s);
  }
  static compressHex(str: string, nu: number): string {
    var s,
      r = str.length;
    s = void 0 !== nu ? nu : r % 3;
    for (var t = str.slice(0, s), o = []; s < r; ) {
      var u = parseInt(str[s], 16),
        d = parseInt(str[s + 1], 16),
        n = parseInt(str[s + 2], 16);
      o.push(Base64KeyChars[(u << 2) | (d >> 2)]),
        o.push(Base64KeyChars[((3 & d) << 4) | n]),
        (s += 3);
    }
    return t + o.join("");
  }
  static decompressUuid(uuid: string): string {
    if (23 === uuid.length) {
      for (var e = [], s = 5; s < 23; s += 2) {
        var r = AsciiTo64[uuid.charCodeAt(s)],
          t = AsciiTo64[uuid.charCodeAt(s + 1)];
        e.push((r >> 2).toString(16)),
          e.push((((3 & r) << 2) | (t >> 4)).toString(16)),
          e.push((15 & t).toString(16));
      }
      uuid = uuid.slice(0, 5) + e.join("");
    } else if (22 === uuid.length) {
      for (e = [], s = 2; s < 22; s += 2) {
        (r = AsciiTo64[uuid.charCodeAt(s)]),
          (t = AsciiTo64[uuid.charCodeAt(s + 1)]);
        e.push((r >> 2).toString(16)),
          e.push((((3 & r) << 2) | (t >> 4)).toString(16)),
          e.push((15 & t).toString(16));
      }
      uuid = uuid.slice(0, 2) + e.join("");
    }
    return [
      uuid.slice(0, 8),
      uuid.slice(8, 12),
      uuid.slice(12, 16),
      uuid.slice(16, 20),
      uuid.slice(20),
    ].join("-");
  }
  static isUuid(uuid: string) {
    return (
      Reg_CompressedUuid.test(uuid) ||
      Reg_NormalizedUuid.test(uuid) ||
      Reg_Uuid.test(uuid)
    );
  }
  static uuid() {
    var uuid = Uuid.v4();
    return UuidUtils.compressUuid(uuid, !0);
  }
  static generateUuid() {
    return Uuid.v4();
  }
}

参考资料:

uuid是怎么转__type__的值的 - Creator 2.x - Cocos中文社区

2个uuid是什么对应关系? - Creator 2.x - Cocos中文社区

creater编译后的文件规则是怎样的? - Creator 2.x - Cocos中文社区

《creator插件开发常用API命令列表》备忘录 - 扩展插件 - Cocos中文社区

creator.d.ts │ global.d.ts │ jsconfig.json │ list.txt │ project.json │ README.md │ template-banner.png │ template.json │ tsconfig.json │ ├─assets │ │ animate.meta │ │ audio.meta │ │ bydrbg.mp3 │ │ bydrbg.mp3.meta │ │ prefabs.meta │ │ resources.meta │ │ Scene.meta │ │ Script.meta │ │ Texture.meta │ │ │ ├─animate │ │ coin_up.anim │ │ coin_up.anim.meta │ │ fish_bigred_die.anim │ │ fish_bigred_die.anim.meta │ │ fish_bigred_run.anim │ │ fish_bigred_run.anim.meta │ │ fish_denglong_die.anim │ │ fish_denglong_die.anim.meta │ │ fish_denglong_run.anim │ │ fish_denglong_run.anim.meta │ │ fish_fuyi_die.anim │ │ fish_fuyi_die.anim.meta │ │ fish_fuyi_run.anim │ │ fish_fuyi_run.anim.meta │ │ fish_gui_die.anim │ │ fish_gui_die.anim.meta │ │ fish_gui_run.anim │ │ fish_gui_run.anim.meta │ │ fish_hailuoshuimu_die.anim │ │ fish_hailuoshuimu_die.anim.meta │ │ fish_hailuoshuimu_run.anim │ │ fish_hailuoshuimu_run.anim.meta │ │ fish_hetun_die.anim │ │ fish_hetun_die.anim.meta │ │ fish_hetun_run.anim │ │ fish_hetun_run.anim.meta │ │ fish_jinshayu_die.anim │ │ fish_jinshayu_die.anim.meta │ │ fish_jinshayu_run.anim │ │ fish_jinshayu_run.anim.meta │ │ fish_red_die.anim │ │ fish_red_die.anim.meta │ │ fish_red_run.anim │ │ fish_red_run.anim.meta │ │ fish_shayu_die.anim │ │ fish_shayu_die.anim.meta │ │ fish_shayu_run.anim │ │ fish_shayu_run.anim.meta │ │ fish_shuimu_die.anim │ │ fish_shuimu_die.anim.meta │ │ fish_shuimu_run.anim │ │ fish_shuimu_run.anim.meta │ │ fish_yellow_die.anim │ │ fish_yellow_die.anim.meta │ │ fish_yellow_run.anim │ │ fish_yellow_run.anim.meta │ │ gold_down.anim │ │ gold_down.anim.meta │ │ net_1.anim │ │ net_1.anim.meta │ │ net_2.anim │ │ net_2.anim.meta │ │ net_3.anim │ │ net_3.anim.meta │ │ net_4.anim │ │ net_4.anim.meta │ │ net_5.anim │ │ net_5.anim.meta │ │ net_6.anim │ │ net_6.anim.meta │ │ net_7.anim │ │ net_7.anim.meta │ │ silver_down.anim │ │ silver_down.anim.meta │ │ weapon_level_1.anim │ │ weapon_level_1.anim.meta │ │ weapon_level_2.anim │ │ weapon_level_2.anim.meta │ │ weapon_level_3.anim │ │ weapon_level_3.anim.meta │ │ weapon_level_4.anim │ │ weapon_level_4.anim.meta │ │ weapon_level_5.anim │ │ weapon_level_5.anim.meta │ │ weapon_level_6.anim │ │ weapon_level_6.anim.meta │ │ weapon_level_7.anim │ │ weapon_level_7.anim.meta │ │ │ ├─audio │ │ bydrbg.mp3 │ │ bydrbg.mp3.meta │ │ │ ├─prefabs │ │ bullet.prefab │ │ bullet.prefab.meta │ │ coins_down.prefab │ │ coins_down.prefab.meta │ │ coins_up.prefab │ │ coins_up.prefab.meta │ │ fish_node.prefab │ │ fish_node.prefab.meta │ │ net.prefab │ │ net.prefab.meta │ │ │ ├─resources │ │ fishconfig.json │ │ fishconfig.json.meta │ │ │ ├─Scene │ │ mainscene.fire │ │ mainscene.fire.meta │ │ │ ├─Script │ │ │ Bullet.ts │ │ │ Bullet.ts.meta │ │ │ CoinController.ts │ │ │ CoinController.ts.meta │ │ │ Coins.ts │ │ │ Coins.ts.meta │ │ │ Fish.ts │ │ │ Fish.ts.meta │ │ │ FishType.ts │ │ │ FishType.ts.meta │ │ │ FluxayEffect.ts │ │ │ FluxayEffect.ts.meta │ │ │ FluxayFrag.ts │ │ │ FluxayFrag.ts.meta │ │ │ Game.ts │ │ │ Game.ts.meta │ │ │ Lib.meta │ │ │ Net.ts │ │ │ Net.ts.meta │ │ │ NumUp.ts │ │ │ NumUp.ts.meta │ │ │ WaterWaveEffect.ts │ │ │ WaterWaveEffect.ts.meta │ │ │ WaterWaveFrag.ts │ │ │ WaterWaveFrag.ts.meta │ │ │ Weapon.ts │ │ │ Weapon.ts.meta │ │ │ │ │ └─Lib │ │ Fetch.js │ │ Fetch.js.meta │ │ │ └─Texture │ bg_buyu2.jpg │ bg_buyu2.jpg.meta │ cointextures.plist │ cointextures.plist.meta │ cointextures.png │ cointextures.png.meta │ game_bg.jpg │ game_bg.jpg.meta │ singleColor.png │ singleColor.png.meta │ startbg.jpg │ startbg.jpg.meta │ textures.plist │ textures.plist.meta │ textures.png │ textures.png.meta │ timer.plist │ timer.plist.meta │ timer.png │ timer.png.meta │ ├─library │ │ uuid-to-mtime.json │ │ │ └─imports │ ├─00 │ │ 0004d1cf-a0ad-47d8-ab17-34d3db9d35a3.json │ │ │ ├─01 │ │ 01821c38-18f1-4a1f-b1c0-dac8df856a9b.json │ │ 01857e81-46bf-45c5-b320-c38e79536090.json │ │ │ ├─02 │ │ 0297aab2-9482-4fc6-ac87-d68d50d5f2f1.json │ │ 02e525be-7b9a-4b62-ab99-ee172db2bc88.json │ │ │ ├─03 │ │ 03df0651-a189-4b05-a646-29981a15dee3.json │ │ 03e50ffb-cb1a-4afb-aede-3ac3ac31698f.json │ │ │ ├─04 │ │ 048a219b-da01-4684-8b54-aa1653c502b3.json │ │ 04e9cc79-504b-41ff-a96e-99247a6149c2.json │ │ │ ├─05 │ │ 05b6ae1c-08ba-4230-8b5b-dee0f9af12f5.json │ │ │ ├─07 │ │ 072c5ae0-8e92-4b42-a7c5-3540dcce1d2a.json │ │ 075496c2-3054-4116-b28a-6a3ce56c9b82.json │ │ │ ├─09 │ │ 09dcbf2e-7e12-4484-b274-a90a5dbea247.json │ │ │ ├─0a │ │ 0abcbfc1-d6be-4e67-bd69-493d74d32d96.json │ │ │ ├─0b │ │ 0bdf1072-1a07-4fa5-b855-b5bce89525b0.json │ │ 0bf3fea6-f31b-484d-a4dd-64971cef270b.json │ │ │ ├─0c │ │ 0c3ad56d-ba91-4ea3-a026-9b500145f231.json │ │ 0c7ca89b-b169-4b30-b1b8-29a079aa5ee3.json │ │ │ ├─0d │ │ 0d784963-d024-4ea6-a7db-03be0ad63010.json │ │ │ ├─0e │ │ 0e51b981-a3d9-49cc-aa9c-404e0efeda5a.json │ │ 0e61ade8-dc34-4136-b740-47260ebeea1e.json │ │ 0e7af90c-9613-4d76-a5f4-b12ac5730edd.json │ │ 0eb2a745-93e2-49ac-b774-0109a77961fd.json │ │ │ ├─0f │ │ 0f059f64-4f38-4b3e-b13e-984931a6e553.json │ │ 0f9ca701-1737-4790-872b-7a0bb56dec66.json │ │ │ ├─11 │ │ 11ae9247-d3ae-483f-97c1-1fdd824f486d.json │ │ │ ├─12 │ │ 124733b0-c72d-4ddb-ac93-6013a1069762.json │ │ │ ├─13 │ │ 13745ebd-1b5f-4f37-b312-3d2943b17919.json │ │ │ ├─14 │ │ 144ba423-9342-4f87-a7ff-6445353a9d84.json │ │ │ ├─17 │ │ 17692484-19b5-47ef-877e-04329f343065.json │ │ 17abdf57-fe91-42bd-9ca5-8effe2f19648.json │ │ │ ├─18 │ │ 18f693fa-b5b1-47ed-a94d-ebdd89f8fbc1.json │ │ │ ├─19 │ │ 19ccf57e-b91f-4a08-ab53-797df5a850d8.json │ │ │ ├─1a │ │ 1a32fc76-f0bd-4f66-980f-56929c0ca0b3.json │ │ │ ├─1b │ │ 1b2a844b-1d1f-4e9e-8332-ae9c394b990e.json │ │ 1b42dc08-8b1c-4686-be87-0371affccd09.json │ │ 1b5f84d9-d84c-466f-877a-66499c80168c.json │ │ │ ├─1c │ │ 1c4b1f77-a56b-4b8e-8768-fe614ca7795b.json │ │ │ ├─1d │ │ 1d08772e-5067-4fe7-a948-fe4c265239e4.json │ │ 1dbbd2a0-29b7-4b0e-b4b9-4545f9b12435.json │ │ 1dda02c4-5feb-4e65-afb8-b507f7536b15.json │ │ │ ├─1f │ │ 1f55e3be-b89b-4b79-88de-47fd31018044.json │ │ │ ├─20 │ │ 20cc7edd-f3fd-465a-a4d0-409af2f2d0cc.js │ │ 20cc7edd-f3fd-465a-a4d0-409af2f2d0cc.js.map │ │ 20d2864e-2849-4e8f-96f8-86a092fc6b54.json │ │ 20efa081-6c83-4ca6-9ebb-f22a338205ca.json │ │ │ ├─21 │ │ 216ebe51-1649-444a-a5e1-7ba1810f8e91.json │ │ │ ├─22 │ │ 22cd0693-0a6e-42bd-b506-9939a672cf34.js │ │ 22cd0693-0a6e-42bd-b506-9939a672cf34.js.map │ │ │ ├─23 │ │ 232d2782-c4bd-4bb4-9e01-909f03d6d3b9.json │ │ │ ├─24 │ │ 24362c0b-cd8a-42b4-b0b0-612e46b13c93.json │ │ 2480a30d-1189-4156-9dd9-0e8f923c1563.json │ │ 24d91079-898d-4a00-9162-5fe14ca29ae9.json │ │ 24dd0050-4696-4438-b6f2-ca1c58d7594e.json │ │ 24df14fa-d878-4d23-ab70-c9c53d4da4a7.json │ │ │ ├─25 │ │ 25501932-13d9-4350-8092-03d40ceb1f4a.json │ │ │ ├─26 │ │ 267022d1-2bf5-45af-9a4b-82e19bfba17c.json │ │ 26d9ba0f-0e83-498a-aa4d-e77f74499b9d.json │ │ 26e6fa3f-7118-4ae6-bfe7-ab5ee5508cf5.json │ │ │ ├─27 │ │ 27756ebb-3d33-44b0-9b96-e858fadd4dd4.json │ │ │ ├─28 │ │ 2805584a-6040-4424-96c3-96d103045660.json │ │ 28113253-416b-43f3-9ec6-e0a8162da5bf.json │ │ 286bfe94-1f51-4171-acf3-0d9583d95885.json │ │ 28d1bbbb-4940-470f-a102-ff086930a3b0.json │ │ │ ├─29 │ │ 29158224-f8dd-4661-a796-1ffab537140e.json │ │ │ ├─2a │ │ 2a053610-65c1-4cb7-b86e-0775eceea601.json │ │ │ ├─2b │ │ 2b18009f-267a-4264-a33b-dfd3cfc0b6fd.json │ │ 2b9e3d83-f490-478b-86f1-ef4e5d49907d.json │ │ │ ├─2c │ │ 2c937608-2562-40ea-b264-7395df6f0cea.json │ │ │ ├─2d │ │ 2d2f792f-a40c-49bb-a189-ed176a246e49.json │ │ 2d6e643a-a267-47a0-8154-dbd8f16354ac.json │ │ 2d788c1d-016d-4d67-84a4-ccc98384d993.json │ │ │ ├─2e │ │ 2e4f226c-a1b7-481e-a0ae-f888ef3d3b1b.json │ │ 2ee8e7fb-5e5c-4c9a-9714-38d8c3e578c6.json │ │ │ ├─31 │ │ 31d8962d-babb-4ec7-be19-8e9f54a4ea99.json │ │ │ ├─32 │ │ 32044bd2-481f-4cf1-a656-e2b2fb1594eb.json │ │ │ ├─33 │ │ 33893dd5-677c-4bb0-92af-ee597e1aa1c4.json │ │ 33af693e-d71c-4fde-9afe-88dc94a9f106.json │ │ │ ├─37 │ │ 37b4eef4-871c-401c-bdee-6b9adc01c331.json │ │ │ ├─3b │ │ 3b7d4fe9-3228-4294-99e3-0a390c422252.json │ │ │ ├─3c │ │ 3c324ef3-72e1-4b13-92b1-c6fae373a5ba.json │ │ 3c8a767b-42fa-4515-915c-38007be1049f.json │ │ │ ├─40 │ │ 40176488-8c85-4153-a8ce-1ae91710cf59.json │ │ 40495743-9f8f-4800-9899-66be731160df.json │ │ │ ├─41 │ │ 410fb916-8721-4663-bab8-34397391ace7.json │ │ │ ├─42 │ │ 427469c9-20f7-437c-945e-572fa3297acf.json │ │ 42bbc18a-0c68-4256-86c0-2fb447967da1.json │ │ │ ├─43 │ │ 430f802a-2866-40fe-919d-8ca8ea6e5676.json │ │ 43cb34c2-e40e-48a8-97e7-2ceeeb4a42eb.json │ │ │ ├─45 │ │ 456d1b90-1c41-4cd9-b7ef-aac447a7d476.json │ │ │ ├─46 │ │ 46994b4c-e334-4bdb-9966-5aa49c63b10e.json │ │ 46ff724b-9704-40a8-a728-9eb6eb5ca6d7.json │ │ │ ├─48 │ │ 488d9c1c-f5f6-4d16-ae16-344c3df2e63d.json │ │ │ ├─49 │ │ 491b8a0a-4d70-4997-96d4-e7982d0e1a63.json │ │ │ ├─4a │ │ 4a37dd57-78cd-4cec-aad4-f11a73d12b63.json │ │ 4a913230-31ce-4f9c-a9ab-68235d744c83.json │ │ 4af5e771-080d-4880-8ec6-2dc4f67995ed.js │ │ 4af5e771-080d-4880-8ec6-2dc4f67995ed.js.map │ │ │ ├─4b │ │ 4bf4c93a-d991-4949-a482-881f241e4141.json │ │ 4bfccf2c-a16a-41a5-8f54-bd4bfbe19e20.js │ │ 4bfccf2c-a16a-41a5-8f54-bd4bfbe19e20.js.map │ │ │ ├─4d │ │ 4d46a583-b2bf-4562-b699-f3680c780bfe.json │ │ │ ├─4e │ │ 4e4e81b6-df38-4854-99dc-0a674ef0f2b5.json │ │ │ ├─4f │ │ 4f32ff9f-0e4b-4c57-a034-89bc04432731.json │ │ 4fa9903b-7d83-447c-8d3d-cb8eb4461dde.json │ │ │ ├─51 │ │ 51e2c28e-adf5-4e15-b2fd-8c82bf7e5953.json │ │ 51fdd00f-5ded-4399-b54f-c214f5d979f6.json │ │ │ ├─53 │ │ 533b30b8-8dd0-40f5-8557-52e0fd88042e.json │ │ │ ├─54 │ │ 5400c248-8d8b-4118-948f-81e2ec367c7e.json │ │ 54a605ee-9169-41fa-af39-f3981e5f1f8c.json │ │ │ ├─55 │ │ 559d3fe0-dc90-45a5-9993-1afec6785d88.json │ │ │ ├─56 │ │ 56283616-8081-4bb2-a8c8-8570ecff53a6.json │ │ 5694850a-e9f3-4870-83d1-623c6ed25bf9.json │ │ │ ├─57 │ │ 572dc32c-4434-4835-98b0-88f7ffa5dc90.json │ │ │ ├─59 │ │ 5965ffac-69da-4b55-bcde-9225d0613c28.json │ │ 59861bb3-ff57-41c9-a255-b9182c03047f.json │ │ 59c940d6-5384-4f29-ad18-11cda8fc43aa.json │ │ │ ├─5c │ │ 5c3bb932-6c3c-468f-88a9-c8c61d458641.json │ │ │ ├─5d │ │ 5d6c4aee-f038-4aea-9857-ce97168ed4c4.json │ │ │ ├─5e │ │ 5e1c3913-a3e7-480e-a203-6a0fd274ec7e.json │ │ │ ├─5f │ │ 5fe5dcaa-b513-4dc5-a166-573627b3a159.json │ │ │ ├─60 │ │ 600c098a-ab62-4154-b9d8-666aab617d30.json │ │ │ ├─61 │ │ 61accde8-fde1-402b-ab58-bdd28a3942e6.json │ │ 61aeb05b-3b32-452b-8eed-2b76deeed554.json │ │ │ ├─63 │ │ 635335fc-42e5-43f5-b0be-97460d5686b5.json │ │ │ ├─64 │ │ 64dbebaa-3b5b-431f-a57f-dcf131530f35.json │ │ │ ├─65 │ │ 6533f1f0-9f14-4d12-8280-7795e52f14e9.json │ │ 656fc88c-21df-4d04-98f3-fbdc764025fb.json │ │ 6572b388-40aa-4468-8bee-c861eee04a25.json │ │ │ ├─66 │ │ 6694055d-5d1e-437b-9ccc-14f0b0147d64.json │ │ 66cbd9ed-1825-4b25-9682-bf94641784f7.json │ │ │ ├─67 │ │ 6741d111-7225-47e8-b609-9782145368db.json │ │ 67b03c3d-dc4d-485b-8204-c57894f449d9.json │ │ 67e68bc9-dad5-4ad9-a2d8-7e03d458e32f.json │ │ │ ├─68 │ │ 6827c9a9-7400-47f8-9b91-82b413347226.json │ │ 6827ca32-0107-4552-bab2-dfb31799bb44.json │ │ 682ddab7-e1ff-414f-b88d-abc2b3f11763.json │ │ │ ├─69 │ │ 69da6bdc-7062-44a1-90fc-0b6c635a1e4e.js │ │ 69da6bdc-7062-44a1-90fc-0b6c635a1e4e.js.map │ │ │ ├─6c │ │ 6c0051df-32ee-4fa6-b474-730cf9e6788b.js │ │ 6c0051df-32ee-4fa6-b474-730cf9e6788b.js.map │ │ 6c118523-5e25-4f0d-b567-2991124e7457.json │ │ 6c8a93d9-b2fe-438f-b279-e0bf0eae16d9.json │ │ 6cb54e84-34bc-4922-949c-2c66e9d36196.json │ │ │ ├─6d │ │ 6d7f789f-25c8-4fec-bca6-af1472c43469.json │ │ 6df372f2-5cb4-48da-adce-172889222312.json │ │ │ ├─6e │ │ 6e299c95-2a3d-4dd3-9325-b2ed01cdf301.json │ │ │ ├─6f │ │ 6f2e4942-4c66-4494-811b-e525737d59b2.json │ │ │ ├─70 │ │ 70ae7bf2-0452-4e6f-bae3-740cd4589a33.json │ │ │ ├─71 │ │ 7164f049-b7d6-478d-998f-50d717232a71.json │ │ 7168db62-0edc-42e5-be5d-682cf6c4a165.json │ │ 71c79991-d8b2-4f24-a925-c40fe899c367.json │ │ │ ├─72 │ │ 72a723f9-ff5d-4c51-a489-df9bea196a74.json │ │ │ ├─73 │ │ 732de79f-ab8f-415f-9778-2cd265015725.json │ │ 737ababa-1a14-4243-885b-93e49fbe4bbc.js │ │ 737ababa-1a14-4243-885b-93e49fbe4bbc.js.map │ │ 739837b6-1850-4236-8607-26c1b6e513be.json │ │ 73a32fb7-2c82-4c85-9345-907c97db0de9.json │ │ │ ├─74 │ │ 7428782d-0a10-4fd3-88dd-97d08ec74c8d.json │ │ 744909da-1944-4ff8-a6c1-c534ca716fa8.json │ │ 74da5f94-89c9-4ad1-9d35-d187db055157.json │ │ │ ├─75 │ │ 75f668ca-95a5-435c-9eda-2bebf4fde8e0.json │ │ │ ├─76 │ │ 7626cb3b-184f-48eb-b186-700eaec22e95.json │ │ │ ├─77 │ │ 77fdf1a0-c06c-4621-8890-6c42b3c7e81c.json │ │ │ ├─78 │ │ 785a442c-3ceb-45be-a46e-7317f625f3b9.json │ │ 78dcac94-d4b4-4d54-9d54-125f7905fffe.json │ │ │ ├─79 │ │ 79a836c2-efa1-4f55-9d83-e7e01cc5fa7e.json │ │ 79cc5f08-fbce-47ec-822c-3c3eb5e30446.json │ │ │ ├─7a │ │ 7a38dcd7-81ec-418c-9d2d-d7e4de90456b.json │ │ 7ac60e40-4eeb-4517-aeeb-04cbc6be0dc9.json │ │ │ ├─7d │ │ 7d4ffd94-42d6-4045-9db7-a744229adfc4.json │ │ 7d9784a9-977e-4f10-8da2-927c4375d82b.json │ │ 7de03a80-4457-438d-95a7-3e7cdffd6086.json │ │ │ ├─7e │ │ 7e54bfbd-abf1-4b07-848d-ed6be5dd385c.json │ │ 7e67aa7f-1a25-4a89-a67b-51988117ae87.json │ │ │ ├─7f │ │ 7f09d7a1-59bb-4067-bff9-0d801340056a.json │ │ 7f2109fa-9a0f-41bc-89fe-7ecada6ffb46.json │ │ 7f4833b4-635c-4cf1-a0ee-f4dfd5592ac9.json │ │ │ ├─80 │ │ 8034aa6b-550f-474e-9533-9b47aa0f67fa.json │ │ 809a6c37-c698-4f2c-b17e-b11280535f77.json │ │ │ ├─81 │ │ 81d43d3f-aea2-432a-8c4d-7c372b2e8c61.json │ │ │ ├─82 │ │ 82dec17b-cc45-4121-b2ae-50526bf0da75.json │ │ 82dfd553-ef79-44b8-8061-71a0b0b14784.json │ │ │ ├─83 │ │ 83df0103-1a4f-4ab6-a8ce-da84de250baf.json │ │ │ ├─84 │ │ 849190fe-c4f3-4071-9ff2-f028eccc6fd1.json │ │ │ ├─85 │ │ 8539a433-6e37-4e72-8ee8-25199c989f05.json │ │ │ ├─86 │ │ 864c06d9-8e4f-4699-92e0-3641a17a207f.json │ │ 8672ddd8-2ed0-47a7-8a67-54f9bc694fd5.json │ │ 86b1b7c9-e881-4b2f-8359-f58377be70df.json │ │ 86f11e5c-0766-4bcf-b5e4-1b205070130a.json │ │ 86fe4526-9483-4c85-b7c9-b3a4ec696d58.json │ │ │ ├─88 │ │ 88d3f1d1-528c-46e5-b32f-310801a8e6ac.json │ │ 88e79fd5-96b4-4a77-a1f4-312467171014.json │ │ │ ├─89 │ │ 89e7ec20-0962-44ca-b4f7-58afd0d8d1de.json │ │ │ ├─8a │ │ 8a8a9123-067c-4864-8f0b-da0fa58c7a09.json │ │ │ ├─8b │ │ 8b3f724a-58a2-4c3e-8665-8d1b699a987c.json │ │ 8be2ef75-eb72-4325-aa21-ae207cd38ced.json │ │ │ ├─8c │ │ 8c5001fd-07ee-4a4b-a8a0-63e15195e94d.json │ │ 8c784fc2-508c-4cb6-894e-4b65681eed5c.json │ │ 8c877f6b-5c4c-4ebf-9751-7e0195bcbdba.json │ │ 8cdb44ac-a3f6-449f-b354-7cd48cf84061.json │ │ │ ├─8d │ │ 8d70fff5-61e4-41a8-bb57-1937dce06b21.json │ │ 8d8fe451-16b7-43a6-86eb-9dd7148ea07c.json │ │ │ ├─8f │ │ 8fbc3705-06bc-48a8-b67e-adb34c8d2d35.json │ │ │ ├─90 │ │ 90004ad6-2f6d-40e1-93ef-b714375c6f06.json │ │ │ ├─92 │ │ 9292c58e-45ca-4938-ac17-8088f8ef2d17.json │ │ │ ├─93 │ │ 93974307-dddb-4e1d-871b-5069a0de6fd9.json │ │ │ ├─95 │ │ 9568e1ca-5ab7-411e-9b0d-b0e9983bfe91.js │ │ 9568e1ca-5ab7-411e-9b0d-b0e9983bfe91.js.map │ │ │ ├─96 │ │ 96083d03-c332-4a3f-9386-d03e2d19e8ee.json │ │ 96123ee6-d3ed-4ced-8515-85e218046884.json │ │ │ ├─97 │ │ 972b9a4d-47ee-4c74-b5c3-61d8a69bc29f.json │ │ │ ├─98 │ │ 983047c6-a680-4748-9ce6-f39301500861.json │ │ │ ├─99 │ │ 99136961-8bbe-4c5e-b564-505a38657a21.json │ │ │ ├─9a │ │ 9a424810-bfbf-4ca0-9e0b-dd08f789db4c.json │ │ │ ├─9b │ │ 9bbda31e-ad49-43c9-aaf2-f7d9896bac69.json │ │ │ ├─9d │ │ 9d1ca96e-8016-41ad-bee1-51056da1a91a.js │ │ 9d1ca96e-8016-41ad-bee1-51056da1a91a.js.map │ │ 9daee274-564f-4402-a23d-b73f0aff7f51.json │ │ 9df3582b-c5aa-4569-ae31-5df02081671d.json │ │ │ ├─9e │ │ 9ed14bf6-a37e-4942-bab6-75f37fd66e3a.json │ │ │ ├─9f │ │ 9fa7abaf-660d-4f18-952d-997fedfa9271.json │ │ 9fe96c97-616b-4be5-8856-d4cf98fea936.json │ │ │ ├─a1 │ │ a127358b-7c77-4ca9-8c9f-6d5318961079.json │ │ │ ├─a2 │ │ a23235d1-15db-4b95-8439-a2e005bfff91.json │ │ a29eef79-eeb2-4a38-a168-d21bd37e3998.json │ │ a2f88b52-8557-4f10-9346-03e616499968.json │ │ │ ├─a5 │ │ a57528c9-ff21-4770-9755-f2bbab4dc529.json │ │ │ ├─a6 │ │ a6c9935c-ec1b-428a-b2cc-ce83b3a98b49.json │ │ a6f2b813-4d64-4515-be55-7be5e365f84f.json │ │ │ ├─a7 │ │ a7fe1459-80b0-4fce-979a-7a6d1808c962.json │ │ │ ├─a8 │ │ a8445764-7300-4090-a67e-ee101e9278d3.json │ │ │ ├─a9 │ │ a9ed75e3-8e71-46ee-9d9c-75cca81fd5da.json │ │ │ ├─ab │ │ abe14db1-c921-4bea-9560-16b6cfccb47d.json │ │ │ ├─ac │ │ ac7f2e7f-cdeb-4bb0-a947-b43f7fcc19e0.json │ │ │ ├─ad │ │ ad09ac88-3201-4188-8771-21448bb848a1.json │ │ │ ├─ae │ │ ae428ba9-dd0d-41f0-9069-30d9e71407fc.json │ │ ae58eac7-a12e-45e5-9b0e-f20ddb8dde02.json │ │ │ ├─af │ │ afe36ec2-b53a-4048-92dc-bad6bc374c1d.json │ │ │ ├─b1 │ │ b1455a43-9865-40e7-b6e1-366e332962d4.json │ │ b19323a4-50ee-4b39-b830-75517ae143f5.json │ │ │ ├─b2 │ │ b23ee855-4052-4dbb-a70d-26ae11060370.json │ │ │ ├─b3 │ │ b3e846ce-74fe-47a8-8e97-8de07f5c8a63.json │ │ │ ├─b4 │ │ b43014f4-c80d-4d65-91e6-207ca3f7dcc1.json │ │ │ ├─b5 │ │ b575ee15-9c6a-42b7-b333-50e6edb58a85.json │ │ │ ├─b6 │ │ b63d7b96-2120-45f9-ab8f-9a1ce5cafa93.json │ │ b6d24188-4d34-40dc-a4c8-300d8708c3c9.json │ │ │ ├─b7 │ │ b71c29cd-d128-470c-b5f6-a7da4223c03b.json │ │ b727dec4-3622-4410-b50e-519847cb78e9.json │ │ b794eefa-7d9b-4391-a5f1-3eb6b0f30414.json │ │ │ ├─b8 │ │ b855f513-fb18-47ed-ae03-1ce5a4b39e1b.json │ │ │ ├─b9 │ │ b97a8f6f-ee30-4065-b98f-88e1c65bb7c4.json │ │ │ ├─ba │ │ ba99ccbe-4ea0-47e2-9481-e365a4edb9f9.json │ │ badd5ffc-055d-41e8-8e9a-1c857f63c252.json │ │ │ ├─bb │ │ bb0de968-7717-4292-a3ed-ce70ac82cec3.json │ │ │ ├─bd │ │ bda0ef09-db4d-4228-ac65-c7b3297163bc.json │ │ │ ├─be │ │ be0f5b0c-b541-4d97-864b-99d4f4d4c362.json │ │ │ ├─bf │ │ bf0a434c-84dd-4a8e-a08a-7a36f180cc75.json │ │ │ ├─c2 │ │ c20a311f-c967-4121-85f8-fef8d07b4623.json │ │ c24be583-788e-4c8f-9ba8-07a882828313.js │ │ c24be583-788e-4c8f-9ba8-07a882828313.js.map │ │ c2550ec9-9a23-4468-a5eb-b8f1433768dc.json │ │ c2a96c29-680e-4b2d-bedd-10210919a6c1.json │ │ │ ├─c3 │ │ c3312362-a6f4-422e-96a4-58c2dfc7f138.json │ │ c37f6938-70ca-43d7-b627-468f3c3d97a1.json │ │ c3a4c72f-662a-45a1-a781-6b2bc29f55f7.json │ │ c3ac27cf-1902-4e52-a079-16144a0988fe.json │ │ │ ├─c5 │ │ c5e5856f-0015-4060-8388-a1b035371f9b.json │ │ │ ├─c6 │ │ c609ed00-b89b-413f-8014-7de1420df0c9.json │ │ c62e2941-a4ce-4794-addd-80172244bfff.json │ │ c6650e6d-eee1-4285-9782-b2824e396c73.json │ │ │ ├─c8 │ │ c8939c32-8a6c-4e61-b4b1-03903b7c4189.json │ │ │ ├─c9 │ │ c9e2668e-f384-4d9e-9f00-9a776f305e93.json │ │ c9fa51ff-3f01-4601-8f80-325d1b11dab7.json │ │ │ ├─ca │ │ ca8401fe-ad6e-41a8-bd46-8e3e4e9945be.json │ │ ca8eb5f0-4971-4fe4-b043-70bd3e8852e8.json │ │ │ ├─cc │ │ cc0a5259-03ef-4af4-937c-ae5eed9bf4da.json │ │ cca9d123-df61-4770-b32b-356312eca6be.json │ │ │ ├─cd │ │ cd33edea-55f5-46c2-958d-357a01384a36.json │ │ │ ├─ce │ │ ce15d8b7-ace8-4b6e-af96-6ba207fcb646.json │ │ cef0d325-c2d1-494b-98dd-6122288a1da3.json │ │ │ ├─cf │ │ cf8d1692-3353-44df-b824-f6cf10f8b6a1.json │ │ │ ├─d1 │ │ d1b8be49-b0a0-435c-83b7-552bed4bbe35.json │ │ │ ├─d2 │ │ d2c3a687-a636-4a0a-89df-d3b7e5955f5b.json │ │ │ ├─d3 │ │ d3a88e92-7f7d-4fee-ac42-20585efc0efa.json │ │ │ ├─d4 │ │ d46576a2-9546-4479-88d9-15d231e6303e.json │ │ d4fa770e-bad7-4579-98b3-586bfcb77d63.json │ │ │ ├─d9 │ │ d932f480-c4a8-49d6-8cda-a03143e51115.json │ │ │ ├─da │ │ daed04b0-f944-4d6d-b259-e5a314026fa9.json │ │ │ ├─dc │ │ dc0368d4-85a3-4347-9074-c5c0ab836f40.json │ │ dc049123-db43-4e82-8b18-fb47d3e6e8e1.json │ │ │ ├─df │ │ df5cd4b4-43a1-4b36-b361-ea0adbf719c2.json │ │ dfbc7635-b601-4bcb-8274-15dc8f9d92e3.json │ │ │ ├─e0 │ │ e06565e1-e3d4-4c2e-9986-cd913caf2999.json │ │ e084ee88-be20-4d86-bab3-42441eb73fde.json │ │ │ ├─e3 │ │ e39dade0-c7a8-4a27-9578-ad7f965fb7c7.json │ │ │ ├─e4 │ │ e4ad804a-aaeb-4479-b369-3a9ae26f6f80.json │ │ │ ├─e7 │ │ e7aba14b-f956-4480-b254-8d57832e273f.json │ │ e7bbde70-d98b-48cd-9335-7acb5764f593.json │ │ │ ├─e8 │ │ e863428c-a983-48c7-b0d0-461920c514b7.json │ │ e8b93313-2d56-401a-bf4f-d70c1280413b.json │ │ e8da5085-2e13-4166-8f70-503e153cb594.json │ │ │ ├─e9 │ │ e9ec654c-97a2-4787-9325-e6a10375219a.json │ │ │ ├─ea │ │ eacda806-39a0-4be9-bd2c-c78a8acf17dd.json │ │ eaf95c36-27f6-4dd1-8d38-8efec9177ed2.json │ │ │ ├─ef │ │ ef4e8995-c67d-4e7f-a8d4-269b1892ed7e.json │ │ efc6db68-0ffd-4e86-8327-63ff3cf0875b.json │ │ │ ├─f0 │ │ f0048c10-f03e-4c97-b9d3-3506e1d58952.json │ │ f078bd13-a356-4cc4-9291-1dfd9090eeca.json │ │ │ ├─f1 │ │ f1068e87-c6b5-4a2a-8ea4-3c093ae9f95e.json │ │ │ ├─f3 │ │ f34ee3be-c6d1-4bf7-8c6b-4f9a981808d1.json │ │ f3503b44-f03d-4a53-980b-f2406b963696.json │ │ │ ├─f4 │ │ f44cedd7-bea4-46b1-a973-14cb08cd786f.js │ │ f44cedd7-bea4-46b1-a973-14cb08cd786f.js.map │ │ │ ├─f5 │ │ f5f60557-5de7-4edc-abb8-922cdede8809.json │ │ │ ├─f6 │ │ f6d562e3-022e-411c-8306-7920d1740611.json │ │ │ ├─f7 │ │ f770949d-88c7-43bd-9df2-44a8c330375c.json │ │ │ ├─fa │ │ fa40b79d-8f7f-4a70-ac1e-cfa9ea76796f.json │ │ fab2f368-19fc-4e89-bc06-855fd23991f1.json │ │ │ ├─fc │ │ fc121c24-fed6-4a6e-930c-3df392d4c85f.js │ │ fc121c24-fed6-4a6e-930c-3df392d4c85f.js.map │ │ fc97d1ac-acd2-4b62-8239-b47a2ce81af0.json │ │ │ ├─fd │ │ fd73e7ca-d72f-4228-bbfe-d897ab8d3353.js │ │ fd73e7ca-d72f-4228-bbfe-d897ab8d3353.js.map │ │ │ ├─fe │ │ fe7528b1-e993-4d58-b738-a1554922de5e.json │ │ │ └─ff │ ffe33363-ee01-4e41-bdd0-38849e6d56f6.json │ ├─local │ │ assets.json │ │ console.json │ │ hierarchy.json │ │ layout.windows.json │ │ local.json │ │ node-library.json │ │ scene.json │ │ │ └─logs │ project.log │ ├─packages ├─screenshots │ alipay2.jpg │ fish.gif │ fish.gif.meta │ qqgroup.JPG │ wechatpay2.jpg │ ├─settings │ builder.json │ builder.panel.json │ project.json │ └─temp └─quick-scripts └─assets └─Script Bullet.js Bullet.js.map CoinController.js CoinController.js.map Coins.js Coins.js.map Fish.js Fish.js.map FishType.js FishType.js.map FluxayEffect.js FluxayEffect.js.map FluxayFrag.js FluxayFrag.js.map Game.js Game.js.map Net.js Net.js.map NumUp.js NumUp.js.map WaterWaveEffect.js WaterWaveEffect.js.map WaterWaveFrag.js WaterWaveFrag.js.map Weapon.js Weapon.js.map
以下是可能会问到的一些 Cocos Creator Shader 的面试问题: 1. 什么是 Shader? Shader 是一种在 GPU 上执行的程序,用于控制渲染管道的不同阶段,从而实现高级的图形效果。 2. Cocos Creator 中的 Shader 是什么? Cocos Creator 中的 Shader 是一种用 GLSL 语言编写的脚本,用于控制渲染管道的不同阶段,以实现各种图形效果。 3. Cocos Creator 中的 Shader 有哪些阶段? Cocos Creator 中的 Shader 有三个阶段:顶点着色器、片段着色器和几何着色器。 4. 什么是顶点着色器? 顶点着色器是 Shader 中的一部分,用于将 3D 对象中的每个顶点转换为屏幕坐标,并对每个顶点应用一些变换(如旋转、平移、缩放等)。 5. 什么是片段着色器? 片段着色器是 Shader 中的一部分,用于计算每个像素的颜色值,并在屏幕上呈现出 3D 对象。 6. 什么是几何着色器? 几何着色器是 Shader 中的一部分,用于在渲染管道中的几何阶段中对顶点进行更高级的操作,例如几何变换和顶点剪切。 7. Cocos Creator 中的 Shader 如何与材质一起使用? Cocos Creator 中的 Shader 可以与材质一起使用,通过在材质的属性面板中选择 Shader 并设置 Shader 的属性来实现各种图形效果。 8. 如何在 Cocos Creator 中创建自定义的 Shader? 在 Cocos Creator 中创建自定义的 Shader 需要编写 GLSL 代码,并在项目中创建一个新的 Shader 资源文件。然后,将编写的 GLSL 代码复制到 Shader 资源文件中,并在编辑器中设置 Shader 的属性。 9. Cocos Creator 中的 Shader 如何进行优化? Cocos Creator 中的 Shader 可以通过使用纹理压缩、减少计算量、使用简单的算法等方式进行优化,以提高渲染性能和效率。 以上是一些可能会问到的 Cocos Creator Shader 的面试问题,希望能对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值