//tips
//キャラクター同期対応
Foxの複数回ボタンタップを行うテレポートスキルのボタン表示の調整をお行う。テレポートの回数は制限したので、それに合わせて、ボタンを非表示にする。
2回ボタンを押したら押されたボタンを非表示にするButtonTwoShotスクリプトを新たに作成。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class ButtonTwoShot : MonoBehaviour
{
int count;
void Update()
{
if (count == 2)
{
Clickshot();
}
}
public void OnClick()
{
count++;
}
void Clickshot()
{
Button btn = GetComponent<Button>();
btn.interactable = false;
}
}
これで無事に機能した。
ゴーレム生成を再開させて、ゴーレムソウル取得によるクリアがきちんと実行されるかも確認していく。
GolemOrangefollowprefabを追加し、ゴーレムを追従するゴーレムソウルをシーンに設置しようとしたがゴーレム一つに対して全シーン共通してゴーレムソウルも一つにしたいため、こちらもprefab生成した方が良さそう。
Golemfollowスクリプトの[SerializeField]GameObject golem;の箇所を下記に変更。
void Start()
{
golem = GameObject.Find("Polygonal Golem Orange (1)");
}
GolemSouldropスクリプトの[SerializeField]GolemSoulCounter golemSoulCounter;の箇所をGolemSoulCounterのtextのtagで取得する。
GolemSoulCounterは同期対象としなくてもいいがsoulpostに提出されたsoulの数は同期させる必要があるので覚えておく。
まずは一体のゴーレムにsoulを落とさせる流れを確認する。
var vgf = new Vector3(33, 8, 110);//ゴーレム生成
PhotonNetwork.Instantiate("GolemOrangefollow", vgf, Quaternion.identity);
をphotonCountスクリプトに追加。
同時にGolemSouldropスクリプトコードをtag索敵に修正。
golemSoulCounter = GameObject.FindWithTag("GolemSoulCounter").GetComponent<GolemSoulCounter>();
soulをアクティブにするコードを追加。
public void Dropgolemitem()
{
dropitem.SetActive(true);
}
HPScript2のHP0の場合のゴーレム処理を追加する。ゴーレムにアタッチされているGolemfollowdropスクリプトは不要になりそう。
if (hp <= 0)
{
photonView.RPC(nameof(DestroyObj), RpcTarget.All);
//Destroy(this.gameObject); //ゲームオブジェクトが破壊される
if (gameObject.name == "Polygonal Golem Orange (1)")
{
Golemfollow Golemfollow = GameObject.Find("GolemOrangefollow").GetComponent<Golemfollow>();
Golemfollow.Dropgolemitem();
}
}
名前で判別できるのでGolemOrangefollowオブジェクトを直接見つけ、そこで実行することにした。
実行してみたらGolemfollowスクリプトのDropgolemitem()がうまく実行できない。要因を考えていく。