前提・実現したいこと
オブジェクトをマウス左クリックで選択し、N秒間(2秒間くらい)押し続けたら、赤色にオブジェクトを変更したいと考えております。
コルーチンとかネットで調べてみたのですが、N秒後の処理はよく見かけるのですが、N秒間クリックを押し続けた後というのが、見つけられませんでした。
初歩的な質問で申し訳ございませんが、どなたかご教示いただけると幸いです。
該当のソースコード
オブジェクトの色を赤色に変えるのに使っているスクリプト。コライダーにRayが当たったときに
赤色。左クリックが押されていないときに元の色に戻るようにしています。
public class Select_ChangeColor : MonoBehaviour { //選択判別用フラグ public bool beRay; //選択時の色変更用 private Color default_color; private Color select_color; //色変更対象のオブジェクトのマテリアル格納用 protected Material mat; void Start() { beRay = false; default_color = GetComponent<Renderer>().material.color; select_color = Color.red; mat = this.gameObject.GetComponent<Renderer>().material; } void Update() { if (Input.GetMouseButtonDown(0)) { RayCheck(); } if (Input.GetMouseButtonUp(0)) { beRay = false; } } private void RayCheck() { mat.color = default_color; Ray ray = new Ray(); RaycastHit hit = new RaycastHit(); ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray.origin, ray.direction, out hit, Mathf.Infinity) && hit.collider == gameObject.GetComponent<Collider>() ) { beRay = true; mat.color = select_color; } else { beRay = false; hit.collider.gameObject.GetComponent<ChangeColor>(); } } }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/11 01:34
2020/06/11 01:42
2020/06/11 09:06