クリエーター - エディター拡張機能


タイトル: クリエーターエディター拡張
機能 カテゴリ: Cocos2dx
タグ: [クリエイター, 最適化, レンダリング, アトラス]
日付: 2023-03-23 16:08:24
コメント: false
mathjax: true
toc: true

クリエーター - エディター拡張機能


前編

  • テンプレートを使用して拡張機能を作成する - https://docs.cocos.com/creator/3.3/manual/en/editor/extension/create-extension.html
  • エディタ API の説明 - https://docs.cocos.com/creator/manual/zh/editor/extension/editor-api.html

作成

  1. 拡張機能 -> 拡張機能の作成

    画像-20230323172156057

  2. テンプレートを選択し、 its-utilなどの拡張子を指定すると、 its-util拡張子ディレクトリが拡張子内に作成されます。

    画像-20230323172310283

  3. 次に初期化コマンドを実行します

    $ cd its-util
    $ npm install && npm run build
    
  4. 拡張機能を有効にする

    画像-20230323172538532


拡張子を変更する

  1. コードに変更し、一度ビルドすると有効になりますが、この方法はあまりnpm run watch便利ではなく、モニターを開いてからビルドする必要がありません。

    $ npm run build
    
  2. 更新ボタンをクリックします

    画像-20230323174637625


開発モード

  1. モニターの電源をオンにすると、毎回ビルドする必要がなくなります

    $ npm run watch
    
  2. 更新ボタンをクリックします

    画像-20230324110637993

    • main.ts と vue template ts のコードは更新することでのみ有効になり、main.ts に書かれて他の ts で使用されているコードは有効にならないようです。

      画像-20230324113348477

  3. 終わり


メッセージメカニズム

  • メッセージ システム - https://docs.cocos.com/creator/manual/zh/editor/extension/messages.html

最も一般的に使用されるエディタ拡張 API は、メッセージを通じて通信する必要があります


エンジンメッセージAPI

  • 関連する API は、 [開発者] -> [メッセージ リスト]で表示できます。

    画像-20230325143642949

  • 例としてクエリ URL パスを取り上げます

    let uuid = "a7ac6d76-4a06-46ad-8d58-363b1b46ad6c"
    const info = await Editor.Message.request('asset-db', 'query-url', uuid);
    LogUtil.D('--- info:', info) // db://assets/resources/ui/Atlas/login/bx_loading_Phone.png
    
    
    
    

拡張メッセージAPI

  • https://docs.cocos.com/creator/manual/zh/editor/extension/messages.html#%E6%99%AE%E9%80%9A%E6%B6%88%E6%81%AF
  1. メッセージを定義するpackage.jsonでメッセージを定義する

    {
          
          
        "name": "its-util", // name 就是要调用的 扩展包名
        "contributions": {
          
          
            "messages": {
          
          
                "test-api01": {
          
           // test-api01 就是要执行的消息
                    "methods": [ // methods 就是该消息会执行的方法数组, 一般定义一个就行了
                        "api001"
                    ]
                },
                "test-api02": {
          
          
                    "methods": [
                        "api002"
                    ]
                },
            }
        }
    }
    
  2. main.ts特定のメソッドを定義する

    // @ts-ignore
    export const methods: {
          
           [key: string]: (...any: any) => any } = {
          
          
        api001(...args: any[]) {
          
           // 不需要返回值, 提供给 send
            LogUtil.D("--- api001 args:", ...args)
        },
    
        api002(...args: any[]) {
          
           // 需要返回值, 且支持异步返回, 提供给 request
            LogUtil.D("--- api002 args:", ...args)
            return new Promise<string>((resolve) => {
          
          
                setTimeout(() => {
          
          
                    resolve("--- msg from api002")
                }, 3000);
            })
        },
    };
    
    
    
  3. テスト

    // 发送
    Editor.Message.send("its-util", "test-api01", "hello", 123, true);
    
    // 请求并返回
    const info02 = await Editor.Message.request("its-util", "test-api02", "hello", 123, true);
    
    
    
    

エクスプローラー拡張機能

  • https://docs.cocos.com/creator/manual/zh/editor/assets/extension.html

リソースを右クリックして拡張機能を追加し、リソースの処理を容易にすることができます。


ビュー3

  • Vue3 入門 - https://www.runoob.com/vue3/vue3-intro.html
  • Vue 3 ライフサイクルの完全ガイド - https://segmentfault.com/a/1190000039680245

ライフサイクル

  • ある

    画像-20230325111508551


ピットを踏む

変更は有効になりません

  • コードを変更して実行してもnpm run build有効にならない場合は、プロジェクトを再起動してください。

おすすめ

転載: blog.csdn.net/yangxuan0261/article/details/129774432