unity C#
タッチ(クリック)でキャラクターが移動するスクリプトを作り、
そのキャラクターが特定のタグを持つオブジェクトに接触すると指定した場所に移動するスクリプトを作りたいのですが。
タッチ(クリック)し続けている間はtransformが有効化されません。一度指を話せばtransformしてくれます。
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class RocketBoss : MonoBehaviour 6{ 7 private Vector3 playerPos; 8 private Vector3 mousePos; 9 10 void Update() 11 { 12 playerControl(); 13 } 14 15 private void playerControl() 16 { 17 18 if (Input.GetMouseButtonDown(0)) 19 { 20 playerPos = this.transform.position; 21 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition); 22 } 23 24 if (Input.GetMouseButton(0)) 25 { 26 27 Vector3 prePos = this.transform.position; 28 Vector3 diff = Camera.main.ScreenToWorldPoint(Input.mousePosition) - mousePos; 29 30 if (Input.touchSupported) 31 { 32 diff = Camera.main.ScreenToWorldPoint(Input.GetTouch(0).position) - mousePos; 33 } 34 35 diff.z = 0.0f; 36 this.transform.position = playerPos + diff; 37 38 } 39 40 if (Input.GetMouseButtonUp(0)) 41 { 42 playerPos = Vector3.zero; 43 mousePos = Vector3.zero; 44 } 45 } 46 47 private void OnCollisionEnter2D(Collision2D collision) 48 { 49 if (collision.gameObject.tag == "Boss") 50 { 51 52 53 transform.position = new Vector3(0, -4, 0); 54 55 56 57 Debug.Log("可動"); 58 59 } 60 61 62 } 63}
解決策としてはおそらく画面のタッチそのものを一瞬だけ無効かする、もしくは強制的なtransformなのかなと思っていますが方法がわかりません。unity初心者で初めての質問です。無作法があると思いますが知恵を貸していただけたら幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/06 13:27