自己満足なぶろーぐ

サルが自分用メモとしてつかってます。正しくないことばかり書いてると思う

[Unity]アタッチした順番でスクリプト実行の順番が決まる

Unityのソースは最後にアタッチした順番で実行を行うみたい

どうも実行されないためいろいろ試してみたら

Unityのバージョンは5.3.5f1

 

確認画像

AA、Enemy、Playerの順番でアタッチして、実行した場合

f:id:miya033:20160903023635p:plain

  

AA。Player、Enemyの順番でアタッチして、実行した場合

f:id:miya033:20160903023638p:plain

 

Enemy、AA。Playerの順番でアタッチして、実行した場合

f:id:miya033:20160903023642p:plain

 

上記3パターンでinspecterの順番を入れ替えてから実行をしてみましたが、順番は変わりませんでした

このように最後にアタッチした順番で実行されるみたいです

 

もしソースをいくらみてもエラーが解決できないときはこの辺を確認してみるといいかもしれませぬ

 

 

スクリプト実行順番を指定】

Edit >Project Settings>Script Execution Order からスクリプトの実行する順番を変更できるみたいです。詳細は以下のサイトをみてください

 

 

 

 

【Unity】文字コードを自動でUTF-8に変換

文字コードUTF-8に変換してくれるソースをみつけたのでメモ。

きちんと読んでませんが、おそらくUnityで読み込んだテキストの文字コードを自動で変換してくれるのではないかと思う…たぶん。

時間があるときに試してみようと思います。

 

【関連】

miya033.hatenablog.com

 

【Unity】ホームボタンでアプリを一時停止させる

OnApplicationPause
スマホのホームボタンや別のタブを開いたりしたときに呼ばれる関数。

これと停止を組み合わせれば一時停止をさせることができる…はず。


void OnApplicationPause (bool stop){
   //ホームボタンや別タブを開いたとき呼ばれる
  if(stop){
     停止させる処理かく
  }
   //再開時に呼ばれる
  else{
  再開処理かく
  }
}


【参考】

 

 

【Unity】マウスイベント OnMouseDownやOnMouseOver

OnMouseDownやOnMouseOverなどを

使うときはオブジェクトにColliderがアタッチされていないと呼ばれない。

 

【参考】

【あわせて読むとお得】

【Unity】AnimetorとSpriteRenderを分けてアニメ

AnimetorとSpriteRenderを分けてアニメ

 

・CreateでAnimatorControllerを作成

・AnimetorをAddComponetで追加し、作成したAnimatorControllerを設定

f:id:miya033:20160612120025p:plain

 

適当な画像をシーンにドロップ。

次に、こいつをok(1)の子オブジェクトにする

 

 

アニメ作成手順

f:id:miya033:20160612121833p:plain

 

上記画像①~③手順を繰り返してアニメを作成していく

 

 

 

親オブジェクトにSpriteRenderがなくてもアニメが再生ができるため、スクリプト

 

 

 

enum外部から呼び出す

enumを外部から呼び出すことはできないか探していたらなんかできたので、メモ

//呼ばれる側 public class : Yobareru { public enum STATE{ATTACK,MOVE}; STATE statelist;
void Update () { switch (statelist) { case STATE.ATTACK: Attack (); break; case STATE.MOVE:
             Move(); break; } } public void Set(STATE _state){ statelist = _state; } }
//---------------------------------- //呼び出し先 public class Yobu : MonoBehaviour { public GameObject obj; Yobareru yobareru; //--------------------------------- void Start () { yobareru = obj.GetComponent<Yobareru> (); }


void Update(){
yobaretu.Set(yobareru.ATTACK);
        }

}



【参考】

列挙型(enum)を別classから参照する - arketブログ

 

 

[2016/8/13]

こんなのでも呼べました

public enum STATE{ATTACK,MOVE};

public class : Yobareru {
	public enum STATE{ATTACK,MOVE};
	STATE statelist;			
	
void Update () { switch (statelist) { case STATE.ATTACK: Attack (); break; case STATE.MOVE:
             Move(); break; } } public void Set(STATE _state){ statelist = _state; } }