//tips
//キャラクターUI整備
FoxのUI実装を進めていく。前回人間側のUIに機能付を行ったので今回は人狼側の設定を行う。
Skill1,Skill2は黒闇効果とワープ機能を引き継ぎ、新たにダミー人形の生成をFoxAttackManagerスクリプトに挿入した。
public void dummyfoxcoming()
{
GameObject obj = Instantiate(prefabdummy);
obj.transform.position = transform.position;
}
これでfoxの人狼側は完成。
MooseのUI実装に入っていく。Mooseの最初2つのスキルはドローンの操作にした。droneplayerUIスクリプトをMooseオブジェクトにアタッチ。子要素にcameracontrollerオブジェクト、二つのカメラ付きドローンオブジェクトをアタッチした。
droneplayerUIオブジェクトはMoosecanvasに配置。Mooseオブジェクト下に配置してしまうとボタンがクリックできないので。
複数カメラの視点移動を利用する際に、メインカメラをSetActive(false);にしてしまうのでHPゲージの向きを調整するHPUIRotateScriptの Camera.main.transform.rotation;にエラーが発生してしまう。
NullReferenceException: Object reference not set to an instance of an object
HPUIRotateScript.LateUpdate () (at Assets/HPUIRotateScript.cs:10)
if (Camera.main)
{
// カメラと同じ向きに設定
transform.rotation = Camera.main.transform.rotation;
}
と条件をつけることで解決。
人間か人狼かがわかる機能を考える。FindwithTagで検索させてみる。キャラクターUIのwolfUIにFindwolfタグを設定しておくことでシーン上には一人しかwolfはいないので、そのwolfのゲームオブジェクトを取得することができるはず。ただ、使用はphotonが前提となるので、今回は簡易版で同様の機能を探す。
Decoyの下にFindwolfタグを持ったからparticleを置き、下記のスクリプトを挿入した。
public void Findwolffunc()
{
ParticlePlay youwolf = GameObject.FindWithTag("Findwolf").GetComponent< ParticlePlay>();
youwolf.ParticleOn();
}
最後に通常攻撃を行うことで攻撃した対象のhpを増やすスクリプトを追加した。
public void Healingfunc()
{
healingmoose = true;
}
if (!healingmoose)
{
decoy.hp -= powerEnemy;
}
else
{
decoy.hp += powerEnemy;
}
Debug.Log("human");
これでmooseの人間側の機能実装が完了した。