//tips
//キャラクターごとの修正
キャラクターピックを行なった後、キャラクターUIのボタン操作もきちんとできるようになった。
ここからはDeer以外のキャラクターも選択できるように各キャラクターをphoton対応に修正していく。
ベースとなる変更はenvpalymove5photonスクリプトの組み込み、HPscript2への更新、photonview、photontransform、photonanimatorviewおよびnetworkcharactorスクリプトのアタッチ。攻撃判定箇所へのcharamodemanagerスクリプトの追加。UIへのDeerActionlistスクリプトの追加。minimapsphere,Particle System moonlight,minimapcameraの追加となる。
最後にUIとの連携の調整をしてシステムに組み込める。共通のアクションが多いのでDeerActionlistスクリプトをキャラクター共有のActionlistとして利用していく。
rabbitのprefabの修正から始める。
各種のスクリプトおよびオブジェクトをアタッチして動かして見たら、animatorのbool切り替えの部分も未設定だったのでそちらも追加しておく。初期はtriggerでのアニメーション分岐にしていたので新たに作成して対応する必要がある。
一通り設定してボタン動作させようとしたがうまくボタンに反映しない。UIから自身の操作キャラクターに実行内容を渡すDeerActionlistスクリプトの内容でエラーが生じているのかもしれないと考えて、コードを見直す。
下記が現在複数あるためUI表示がうまくされていないのかもしれないので、samplesceneからの生成をrabbitに変更し、シーン上のrabbitは削除する。
void Update()
{
Players = GameObject.FindGameObjectsWithTag("Player");
foreach (GameObject player in Players)
{
PhotonView photonView = player.GetComponent<PhotonView>();
if (photonView.IsMine)
{
myPlayer = player;
}
}
}
単体シーン確認用のSampleSceneenv2スクリプトを PhotonNetwork.Instantiate("Rabbit", v, Quaternion.identity);に変更。
Canvasを移設すると座標やscaleの調整が必要なようで、canvasの数値を調整してあげる必要があった。ボタンの内容自体はきちんと実行された。
Actionlistにrabbit固有のスキルを追加していく。以前作成したRabbitAttackManagerスクリプトを参考に内容を移植してあげれば良い。
Rabbitのスクリプトを考える上で各キャラクターの位置を示すParticlePlayarrayスクリプト と短距離高速移動させるReceiveEventスクリプトもうまく組み込む。
下記のような形でメソッドを追加していくと、相手への攻撃時に攻撃を受けた側にデバフを生じさせる効果があるものを見つけたが、ダメージの与え方をダメージを受ける側のコライダー判定に変更しているため。どのようにデバフ効果をHPscript2に組み込むか考える。
public void Rabbitskill2()
{
envPlaymove5photon = myPlayer.GetComponent<EnvPlaymove5photon>();
envPlaymove5photon.RabbitspeedIp();
}
public void Rabbitskill3()
{
envPlaymove5photon = myPlayer.GetComponent<EnvPlaymove5photon>();
envPlaymove5photon.RabbitDash();
}
デバフの組み込み方は数種類のデバフがあることから if (other.gameObject.tag == "Weapon" && DuringAttack == false)の下にデバフcheckメソッドを挿入して、その中でboolのチェックと各状態の割り当てを行えば良さそう。