前提・実現したいこと
・Live2Dにて右向きのキャラ、左向きのキャラを作成しました。全くの別モデルで作成していますが、見た目以外、つまりパラメーターやモーションは左右反転させたものです。これを右向き、左向きのときに切り替えられるようにしたいです。(モデルの親階層にて位置座標は管理してもらい、小階層にあるモデルはただ表示が切り替わっていればいいです)
・位置がちゃんと振り返る直前と同じ場所にあるようにしたいです。
・後々、当たり判定等もつけたいのです(攻撃されたら攻撃された方向を向く等)。
・攻撃モーション等もモデルに付いているので、Instantiateで生成
発生している問題・エラーメッセージ
該当のソースコード
C#
1 2『キャラ生成するスクリプト』 3//int KLR; 4 //KLR = mainCtrlScript.key;//key(KLR)はキャラが右向き常態かを判別するもの 5//keyは別のスクリプトからInput.GetAxis("Horizontal")でゲームパッドの入力感知。 6//※keyは何故boolにしないかと言われそうですが、0の状態の時(待機モーション時)に切り替わらないように。 7 //if (KLR > 0) 8 //{//右向きのときに右向きのキャラを生成 9 // GameObject childObject = Instantiate(RightPlayer) as GameObject; 10 // childObject.transform.parent = ParentPlayer.transform; 11 //} 12 //if (KLR < 0) 13 //{//左向き 14 // GameObject childObject = Instantiate(LeftPlayer) as GameObject; 15 //childObject.transform.parent = ParentPlayer.transform; 16 17 //} 18 19 // } 20『モデルを消すスクリプト』 21 void Update() 22 { 23 24 25 26 if (LR == true)//bool関数「LR」がtrueの場合は右向き 27 { 28 29 30 GameObject obj = GameObject.Find("右向き"); 31 Destroy(obj); 32 33 } 34 if (LR == false) 35 { 36 37 38 //GameObject obj = GameObject.Find("左向き"); 39 //Destroy(obj); 40 41 } 42//こちらは待機モーションの向きも直前の移動方向を参照して決めたいのでboolにしてあります。 43 44
試したこと
InstantiateとDestroyでキャラを生成、消去で切り替えをしようとしましたが、キャラが消えるだけでした。(Instantiateされず。)
Destroyスクリプトはキャラにはつけておらず、空のGameObjectにつけています。(おそらくDestroyが先に発動してInstantiateがされなかったのかと)
Destroyの方を消してみると大量に中央にInstantiateがなされてしまいました。
階層
Player1>右向き(初期状態が右向き)
補足情報(FW/ツールのバージョンなど)
Unity 2018 1.6f1
あなたの回答
tips
プレビュー