前提・実現したいこと
unityでアプリの制作を行っております。
FPS視点でカメラを操作しており、CUBEオブジェクトを2つ配置し、クリックしたらそれぞれ別のシーンに飛べるようにしたいと考えています。
FPS視点はカーソルロックを行い、imageで標準をつけています。
発生している問題・エラーメッセージ
Event TriggerのPointer Clickで対応しようと考えたのですが、カーソルロックを使うとマウスポインターが非表示になり、クリックできません。
カーソルロックを使いながら、オブジェクトをクリックし、Eventを発生させる方法があれば、教えていただきたく思います。
また、代替案として、Rayを飛ばす方法も考えているのですが、CUBEオブジェクトそれぞれ別のシーンに推移させるようなスクリプトがわかりません。下記に記述するようなスクリプトをベースにそれぞれ別のシーンを呼び出すスクリプトがあれば教えていただきたく思います。下記のコードはそれぞれ別のシーンに推移する方法がわからないため、Debugとなっております。
該当のソースコード
カーソルロックのソースコード
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CursorManager : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
Cursor.lockState = CursorLockMode.Locked;
} // Update is called once per frame void Update() { }
}
Rayのソースコード
※記述しているコードはまだ未完成で、シーンに飛ぶのではなく、Hitが表示されるものとなっております。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Touch : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
} // Update is called once per frame void Update() { Ray ray; RaycastHit hit; if (Input.GetMouseButtonDown(0)) { //マウスカーソルの位置からカメラの画像を通してレイを飛ばす ray = Camera.main.ScreenPointToRay(Input.mousePosition); if(Physics.Raycast(ray,out hit, 100)) { Debug.Log("hit"); } } }
}
試したこと
上記のカーソルロックのスクリプトを使わなければ、EventTriggerでイベントを発生させることが出来ました。
しかし、カーソルロックを行い、カーソルを非表示にするとクリックが出来ませんでした。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/23 13:09