SendMessageArgumentで保持しているFlxible*の変数を使用しているものだけ確保して欲しい

This is a forum for requesting Arbor developers.
The items required for the request are as follows.
  • What are you trying to do with Arbor?
  • Specifically, where are you inconvenient and in trouble?
  • What should I do to improve?
Attention point:
  • We can not answer requests that do not know the detailed situation.
  • We can not answer your request for specific problems in the specification of your project.
  • We can not answer your request on Unity's specification issues.
  • We do not guarantee the implementation of your request.

ここは、Arbor開発者への要望を行うためのフォーラムです。
要望に必要な項目は以下の通りです。
  • Arborを使って何をしようとしているか。
  • 具体的にどこが不便で困っているか。
  • 改善するにはどうすればよいか。
注意点:
  • 詳しい状況がわからない要望については答えられません。
  • ユーザー様のプロジェクトの仕様上の固有の問題に対する要望については答えられません。
  • Unityの仕様上の問題に対する要望には答えられません。
  • 要望の実装を必ずお約束するものではございません。

Forum rules
The items required for the request are as follows.
  • What are you trying to do with Arbor?
  • Specifically, where are you inconvenient and in trouble?
  • What should I do to improve?
Attention point:
  • We can not answer requests that do not know the detailed situation.
  • We can not answer your request for specific problems in the specification of your project.
  • We can not answer your request on Unity's specification issues.
  • We do not guarantee the implementation of your request.

要望に必要な項目は以下の通りです。
  • Arborを使って何をしようとしているか。
  • 具体的にどこが不便で困っているか。
  • 改善するにはどうすればよいか。
注意点:
  • 詳しい状況がわからない要望については答えられません。
  • ユーザー様のプロジェクトの仕様上の固有の問題に対する要望については答えられません。
  • Unityの仕様上の問題に対する要望には答えられません。
  • 要望の実装を必ずお約束するものではございません。
kag
Posts: 35
Joined: 2017/05/19 08:28

SendMessageArgumentで保持しているFlxible*の変数を使用しているものだけ確保して欲しい

Post by kag »

お世話になっております。

Unity2018.4.1
Arbor 3.5.5

SendMessageArgumentのメンバー変数に全タイプのFlexible*系の変数を保持していますが、
これを指定している(実際に使っている)タイプのみ確保するようにできないでしょうか?
結構SendMessageGameObjectを多用していまして、できればメモリ消費が最小になってくれると助かります。

よろしくお願いいたします。
User avatar
caitsithware
管理人
Posts: 495
Joined: 2015/08/17 12:41

Re: SendMessageArgumentで保持しているFlxible*の変数を使用しているものだけ確保して欲しい

Post by caitsithware »

ご要望ありがとうございます。
kag wrote: 2019/06/17 14:16 これを指定している(実際に使っている)タイプのみ確保するようにできないでしょうか?
結構SendMessageGameObjectを多用していまして、できればメモリ消費が最小になってくれると助かります。
この件については、Unityの仕様上簡単には実現できません。
理由としては、たとえフィールドの初期値にnullを指定したとしても、Unityのシリアライザが動作したタイミングで自動的にインスタンス化されてしまうからです。
また、フィールドをListなどにすれば容量を最小限に抑えることも可能と言えば可能ですが、配列として使用する予定の無いものをListにするというのも現実的ではないので対応する予定はございません。
ご了承ください。

SendMessageGameObjectとは動作が若干異なりますが、InvokeMethodでは必要なフィールドのみ確保するような構造になっていますので、問題なさそうであればこちらの使用も検討してみてください。
InvokeMethod ― Arbor リファレンス

また、最適化の観点からですと、組み込みスクリプトは汎用性のためにある程度最適化を犠牲にせざるを得ない状況です。
どのようなゲームを作ろうとしているのか、実際にそこは負荷がかかってしまっているのか、などなど状況によってもどういった最適化が必要かは異なっています。
そのため、最終的な最適化に関してそのまま組み込みスクリプトを使用するかスクリプトを自作するかなどについて、最終判断はユーザー様にお任せになってしまう点もご理解下さると助かります。

追記:
Listにすれば可能と説明しましたが、後方互換性のために旧データを新データに流し込む過程で結局旧データを保持し続ける必要があるので、どちらにしても理想的な最適化は実現できそうにないです。
どうしてもSendMessageGameObjectを最適化しなければならない状況でしたら、まずSendMessageGameObjectを多用している状況から改善できないか検討してみてはいかがでしょうか。
kag
Posts: 35
Joined: 2017/05/19 08:28

Re: SendMessageArgumentで保持しているFlxible*の変数を使用しているものだけ確保して欲しい

Post by kag »

回答ありがとうございます。

使用する引数タイプごとにSendMessageステートを作って対応することにします。
InvokeMethodは表示面積が大きいのでちょっと使いにくいかなと思っています。
(AwakeやEndなど設定しないところは畳めれば良いのですが)

ありがとうございました。
User avatar
caitsithware
管理人
Posts: 495
Joined: 2015/08/17 12:41

Re: SendMessageArgumentで保持しているFlxible*の変数を使用しているものだけ確保して欲しい

Post by caitsithware »

InvokeMethodを使わない理由が表示面積なのですね。
設定しないところを折りたたむようにできないか検討いたします。
Post Reply