RPGを製作中なのですが
キャラクターがコライダー上にのった時確率で敵と遭遇するというのを考えています
具体的にはキャラがWASDで動いてそのキー入力から判定して確率がランダム関数が作動し
その確率で敵と遭遇するというスクリプトを考えています
ドラクエに近い考え方です。
C#
1コード 2```using System.Collections; 3using System.Collections.Generic; 4using UnityEngine; 5using UnityEngine.SceneManagement; 6 7 8public class EnemyEncount : MonoBehaviour 9{ 10 public int id1; 11 public int id2; 12 public int id3; 13 public int id4; 14 public int id5; 15 public int id6; 16 public int id7; 17 public int number; 18 [SerializeField] private GameObject Chara; 19 20 21 // Start is called before the first frame update 22 void Start() 23 { 24 Chara = GameObject.FindGameObjectWithTag("Player"); 25 } 26 27 // Update is called once per frame 28 void Update() 29 { 30 31 } 32 33 private void OnTriggerStay(Collider other) 34 { 35 36 37 38 39 40 number = Random.Range(1, 100); 41 42 43 print(number); 44 if (number<=20) 45 { 46 SceneManager.LoadScene(); 47 } 48 49 50 51 52 } 53} 54理解しづらい内容だったら全然おしえてください! 55idのところは敵ぐるーぷ分けているものです
どこで困っているのか明確に記載してください。
WASDを押してそのコライダーの中に入ったら確率が発生する方法です
OnTriggerStay()の中にそれらしき処理が含まれていますが、どこが分からないのでしょうか?
コライダーに入れたいんですがWASDのキーボードを入れた時に発動したいんですが
そのスクリプトがわからなくて・・・
WASDでのキャラ移動の方法が判らないのでしょうか?
前の質問見る限りthird personで移動自体は出来ているようなので尚更どこが判らないのか不明です。
キャラ移動出来てColliderが設定されているのであればLoadScene()で戦闘シーンに遷移させるだけでエンカウントは出来る筈です。(このコードではPlayer以外のもの含めて100%エンカウントしますけど)
違いますWASDで移動するスクリプトはできるんですが
そのキーをおしたときに確率が発動してその確率で敵と遭遇すると言うスクリプトを作りたいのです
WASDはinputでできますが
どこにその関数を持って行ったりとかどうやって確率を出すかがわからないのです!
コメントありがとうございます!
・コライダー内でWASDを押して〇歩歩くたびにエンカウント判定をおこないたい
過去の質問踏まえて要約するとこんな感じでしょうか?
ただこれだと質問の内容である
>キャラクターがコライダー上にのった時確率で敵と遭遇するというのを考えています
というコライダーに接触した時に判定させる仕様と相違するので実際どっちの想定なのでしょうか?
あ えっと要約してるところがあってるとおもいます
コライダーに接触っていうよりコライダー上にのって歩いた(WASDを押した)時にエンカウントをしたいのです
回答2件
あなたの回答
tips
プレビュー