###現状
キャラクターをクリエイトさせるBUTTONがありマウスをタップした地点のUI上にターゲットUI(キャラ出現場所UI)がある
敵周辺に急にキャラを出現させると簡単すぎるので、現状プレイヤーに大きくColliderがついておりタップ地点がColliderに当たるとクリエイトボタンを押せないようにしている
###実現させたいこと
今のままだと敵の進行方向にタップしておいて敵が近づいたらクリエイトできてしまうので改善したい
###該当コード
if (Input.GetMouseButtonDown(0)) { if (EventSystem.current.IsPointerOverGameObject()) { // かぶさってるので処理キャンセル(マウスクver) return; } if (Input.touchCount > 0 && EventSystem.current.IsPointerOverGameObject(Input.GetTouch(0).fingerId)) { // かぶさってるので処理キャンセル(タップver) return; } UnityEngine.Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit = new RaycastHit(); if (Physics.Raycast(ray, out hit)) { if (hit.collider.CompareTag("Stage")) { create.interactable = true; target.SetActive(true); target.transform.position = Input.mousePosition; vec = hit.point; } else if (hit.collider.CompareTag("Impossible")) { create.interactable = false; } else { create.interactable = false; } } }
・クリック時の位置(Input.mousePosition)を変数に入れておく
・当たり判定(Physics.Raycast)を「クリエイトボタンを押した時」に実行する(変数に入れておいたクリック時の位置を使用する)
こういうフローにすればいいのではないでしょうか?
なるほど!
試してみます
あなたの回答
tips
プレビュー