EmotePlayer削除時の処理について

main BBS フォーラム システム・仕様系Q&A EmotePlayer削除時の処理について

  • このトピックには6件の返信、2人の参加者があり、最後ににより2年、 5ヶ月前に更新されました。
6件の投稿を表示中 - 1 - 6件目 (全6件中)
  • 投稿者
    投稿
  • #13243 返信
    ysalpha
    ゲスト

    EmotePlayer削除時の処理について質問です。

    GenerateTestシーンを参考に、EmotePlayer.LoadData()を呼び出してセットアップを行っているのですが、キャラ削除時(EmotePlayerを使わなくなったタイミング)に、

    SDKマニュアルに載っている
    // E-moteデータをアンロードします
    public void UnloaData();
    というメソッドは呼び出す必要があるのでしょうか?

    EmotePlayer.UnloadData()自体呼び出すことができない(公開されていない?)ようにも見えますし、
    GenerateTestシーンではEmotePlayerのUnload関係の処理は特に行われていないようなので、
    必要ないとは思っています。

    ちなみに、デバイスリソースの確保のための
    EmoteDeviceManager.Loadの呼び出しは負荷が高く出来る限りコール頻度を下げたいので、
    ゲーム初期化時にLoadを1回、
    ゲーム終了時にUnloadを1回、
    呼び出すことを想定しています。

    #13244 返信
    ysalpha
    ゲスト

    開発環境は
    Windows10 64bit
    E-mote3.9.5(Unity TYPE2 SDK)
    Unity 2018.2.3f1 (64-bit)
    です。

    #13245 返信
    emote_ofc
    キーマスター

    E-moteオフィシャルです!
    ご質問をいただきありがとうございます。

    ソースをチェックいたしましたところ、Unity TYPE2 SDKにおいてEmotePlayer.UnloadData()関数の実装漏れがありました。
    正しくは以下のような内容で実装されている想定でした。
    次期バージョンアップで対応します。

    public void UnloadData() {
    DestroyCore();
    }

    なお、この関数は「EmotePlayerのインタンスを維持したままモデルのリソースを破棄する」目的で呼び出すものであり、EmotePlayerのインスタンス自体を破棄するのであれば、その際に明示的に呼び出す必要はありません。

    EmoteDevicManager.Load(), Unload() の呼び出し方は、そちらの使い方で合っております。

    今後とも、E-moteをよろしくお願いいたします。

    #13246 返信
    ysalpha
    ゲスト

    EmotePlayer.UnloadDataメソッドについて承知しました。

    ただ、今やりたいこととしては、

    GameObjectやアタッチされたEmotePlayerスクリプトは破棄せずに、
    GameObject、EmotePlayerスクリプトを使いまわして、
    1つのインスタンス内で、キャラを表示/非表示させたり、
    同一EmotePlayerで別キャラを表示するようにしたい。
    というものです。

    使いまわす理由は、InstantiateやAddComponent/DelComponentにかかる負荷を極力除外したいためです。
    そこでゲーム開始時に、同時に表示される可能性のあるキャラ数分のEmotePlayerがアタッチされた
    GameObjectをあらかじめ確保してしまい、
    その中で表示非表示(LoadData/UnloadData)をやりくりすることで実現できるかと思い、
    EmotePlayer.UnloadDataの使用に思い至りました。

    上記の意図でEmotePlayer.UnloadDataを使うのは望ましくないでしょうか?
    素直にGameObjectのDestroy、もしくはEmotePlayerのAddComponent/DelComponentを使って、
    構築した方がよろしいでしょうか?

    #13247 返信
    emote_ofc
    キーマスター

    E-moteオフィシャルです!

    その使用目的であれば、UnloadData() を使用するのが適しています。

    前回の回答でお応えした UnloadData() の実装を EmotePlayer.cs に追加してください。
    正式なSDKには次回バージョンアップで追加となります。

    よろしくお願いいたします!

    #13248 返信
    ysalpha
    ゲスト

    承知しました。

    EmotePlayer.csに
    public void UnloadData() {
    DestroyCore();
    }

    を仮で実装しておき、次回SDKでの正式対応をお待ちしております。
    ご対応ありがとうございました!

6件の投稿を表示中 - 1 - 6件目 (全6件中)
返信先: EmotePlayer削除時の処理について
あなたの情報:





<a href="" title="" rel="" target=""> <blockquote cite=""> <code> <pre class=""> <em> <strong> <del datetime="" cite=""> <ins datetime="" cite=""> <ul> <ol start=""> <li> <img src="" border="" alt="" height="" width="">