2017-08-02 4 views
0

私はUnityには新しく、最近ジョイスティックに苦労しています。私は指タップでジョイスティックの位置を変更したい。たとえば、画面の中央にタッチすると、ジョイスティックも中央に表示されます。私はジョイスティックスクリプトでUpdate()機能を追加タップでジョイスティックの位置を変更するには?

private void Update() 
{ 
    Touch firstTap = Input.touches[0]; 
    if (firstTap.phase == TouchPhase.Began) 
    { 
    m_StartPos = firstTap.position; 
    transform.position = m_StartPos; 
    UpdateVirtualAxes(m_StartPos); 
    } 
    else if (firstTap.phase == TouchPhase.Ended) 
    { 
    m_StartPos = new Vector3(500f, 500f, 0); 
    transform.position = m_StartPos; 
    UpdateVirtualAxes(m_StartPos); 
    } 
} 

は、ここに私のコードです。画面をタップすると位置が変わりますが、指を動かすとonGrag()が呼び出されることはありません。

答えて

0

たとえば、JoystricManagerなどのクラスを作成できます。ここには、Update()メソッドがあります。 Update()でInput.GetMouseButtonDown(0)を確認します。これはユーザーが画面をタップしたときに適用されます。ジョイスティックのGameObjectにコライダーを追加して、このクリックがコライダー内にあるかどうかをクリックして確認します。クリックが内部にある場合 - それを無視して、ジョイスティックスクリプトInput.MousePositionをチェックして、ジョイスティック自体の動きをチェックし、カスタムアクションを実行します(プレーヤーを移動するなど)。クリックがジョイスティックコライダーの外側にある場合は、単にジョイスティック を新しい位置に移動します。ジョイスティックのクリック位置を保存して、クリックの開始座標を取得します。ユーザーが指を動かすと、新しいマウスの位置が得られます。この2つの点を使って、ジョイスティックの位置を計算できます。

関連する問題