Skip to content

スクリプトリファレンス: UnityやMonoDevelopに対する設定

YITSUSE, Masami edited this page Jan 19, 2016 · 27 revisions

本リファレンスでは、スクリプトでアニメーションを制御する際に事前に必要となる設定などの項目について解説しています。

--

Unityの仕様として、「シーン上の各GameObject」及び「(各GameObjectにつけている)スクリプト」の実行順序については「親→子」「(GameObject上に)設置されている上下位置」などでの一定の処理順序が保障されているわけではなく、「各スクリプトコンポーネント・各ゲームオブジェクトで、ランダム(正確にはUnity起動毎などでロードされたオブジェクト順)」となります。そのため、スクリプトの実行順序をMono(.NET Frameworks)に対して設定を行う必要があります。
Unityリファレンス:http://docs-jp.unity3d.com/Documentation/Components/class-ScriptExecution.html

この仕様のため、「SS5Player for Unity」のスクリプト機能群を使用する上で、下記の設定が必要になります。

  • プロジェクトのウィンドウ上で、SpriteSrtudio/Scriptのフォルダ内にある、どれか一つスクリプトを選択状態にします。

  • スクリプトのインスペクタの上の方にある「Execution Order」のボタンを押します。

  • インスペクタに「MonoManager」のインスペクタが開きますので、「+」ボタンを押して、スクリプトを順次加えて・下記の設定を行ってください。

Ver.1.3.xの場合(デフォルト値)

	Script_SpriteStudio_Root                 : 100
	Script_SpriteStudio_PartEffect           : 101
	Script_SpriteStudio_ManagerDraw          : 200

Ver.1.2.xの場合(デフォルト値)

	Script_SpriteStudio_PartsRoot            : 1
	Script_SpriteStudio_PartsInstance        : 2
	Script_SpriteStudio_PartsNULL            : 3
	Script_SpriteStudio_PartsTriangle2       : 4
	Script_SpriteStudio_PartsTirangle4       : 5
	Script_SpriteStudio_DrawManagerView      : 6
  • また、プロジェクトやシーンの構造等によっては、下記の設定を追加で行うとより安定性が向上する場合があります。

Ver.1.3.xの場合

	Script_SpriteStudio_ControlPrefab        : -10
	Script_SpriteStudio_DataCell             : -9
	Script_SpriteStudio_DataAnimation        : -8
	Script_SpriteStudio_DataEffect           : -7

Ver.1.2.xの場合

	Script_SpriteStudio_LinkPrefab           : -2
	Script_SpriteStudio_AnimationReferenced  : -1
  • 設定が終わったら「Apply」ボタンを押す

また、上記の設定の値は、アプリケーションの動作実装や仕様によっては、上記の優先順位を調整する必要が出てくる場合があります。
アプリケーションの動作・表示などに予期しない誤動作などが起こる場合、アプリケーションで使用している他のスクリプトとの処理順序を考慮して、上記の値を適正な動作順序になるように調整してみてください。

調整のヒントとしては、(あくまで原則論の範囲ですが)下記の考え方があります。

  • 一般的な処理の場合、「オブジェクトの操作」→「オブジェクトの表示処理」の順で処理を行うことが適切な場合が少なくありません(「Script_SpriteStudio_Parts~」「Script_SpriteStudio_DrawManagerView」のスクリプトは「オブジェクトの表示処理」のためのスクリプトです)。
  • 「SS5Player for Unity」のスクリプト群については、上の処理順序が守られていれば、スクリプトの優先順位開始値を変更したり・間に他のスクリプトの実行を挟んでも、原則問題は生じないと思われます(「順序」が守られていれば、その具体的設定値についてはあまり関係がないはずです)。

--

▼プロジェクトのスクリプト改行設定について

Unity上で本プレーヤーを使用している際に、「プレーヤーの使用方法やアプリケーションのスクリプト記述が間違っていない」にも関わらず、(本プレーヤーのバグ以外で)下記の要因が揃った場合にアプリケーションの表示等が誤動作する症状が起こる可能性があります。

  • アプリケーションのスクリプトで、注釈を「//」を使用して記載している。
  • アプリケーションのスクリプトで、注釈などに全角文字(漢字など)を使用している。
  • アプリケーションのスクリプトの改行コードの設定が「Microsoft Windows」以外に設定されている。

この場合に、下記の設定を行うことで、アプリケーションの誤動作を回避できる場合があります。

  • MonoDevelop上でプロジェクトのスクリプトの記載ルールの改行コードを「Microsoft Windows」に設定する(改行コードはUnityが動作しているOSで異なる場合が多く、「Microsoft Windows」の設定は「CR+LF」を意味します)。
  • その上でアプリケーションのスクリプト群を読み込み、保存しなおす(本プレーヤー及び、アセットストアなどで配布されているアセットのスクリプト等は、原則全角文字の使用が禁止されているため、恐らく保存しなおさなくても大丈夫だと思います)。
  • (これはできればの範囲ですが)全角文字を使用した注釈を「//」ではなく「/*~*/」で記載する。

※上記設定は、「アプリケーションのステップ実行や・ブレークポイントを使用している」時に、「実際に実行している処理と、MonoDevelop上で示される実行行がずれている」場合などの対処としても有効な場合があります。

また、どうしても「//」を使用して、全角文字を注釈で使用しなくてはならない場合、下記の手段でも解消できる場合もあります。

  • 注釈の末尾に「.」(半角ピリオド)を追加する
Clone this wiki locally