Prefab化した敵にアタッチしておいたGameManagerオブジェクトをInstantiateでロードしたところ外れてしまったのでその時の対処方法。
##前提
- ヒエラルキー上の敵オブジェクトはきちんとApplyしてprefab側に反映した
- GameManagerにアタッチしてあるCanvasもPrefabフォルダにないといけないかと思いフォルダ内に置いた
結果はダメ。loadすると外れてしまう。シーン上においてある敵オブジェクトはGameManagerと連携が取れているが、ロードしてインスタンス化したものはダメ。
##解決方法
1.敵オブジェクトにGameManagerをアタッチしない
2.Loadしてインスタンス化されたときにStart()でGameManager探す
C#
private GameObject gamemanagerOBJ;
void Start()
{
//GameManagerを取得
gamemanagerOBJ = GameObject.FindGameObjectWithTag("GameManager");
}
void Damaged()
{
//取得したGameManagerの"GetScore"を呼び出す
gamemanagerOBJ.SendMessage("GetScore",enemystatus.sc);
}
}
でもこれだと、敵を出す度に探すということをしないといけないからこれどうなんでしょう?あまりきれいな感じがしませんがとりあえず正常に動きました。