मुझे समझ में नहीं आता कि Input.GetTouch यहाँ क्यों काम नहीं कर रहा है।

private void Update()
{
    Vector2 vel = rb.velocity;
    float ang = Mathf.Atan2(vel.y, x: 10) * Mathf.Rad2Deg;

    if (Input.GetKey(KeyCode.Space))
    {
        rb.AddForce(Vector2.up * gravity * Time.deltaTime * 2000f);
    }
    if (Input.GetTouch(TouchPhase.Began))
    {
        rb.AddForce(Vector2.up * gravity * Time.deltaTime * 2000f);
    }
}
0
CooleSockeJr. 22 पद 2019, 18:33

1 उत्तर

सबसे बढ़िया उत्तर

Input.GetTouch एक इंडेक्स की अपेक्षा करता है .. आप एक एनम में गुजर रहे हैं मूल्य।

API में वास्तव में कुछ उदाहरण हैं कि एकता में स्पर्श का उपयोग कैसे करें।

आपके मामले में आप केवल यह जांचना चाहते हैं कि क्या राज्य में पहला स्पर्श है Began ताकि आप इसका उपयोग कर सकें उदा।

private void Update () {
    Vector2 vel = rb.velocity;
    float ang = Mathf.Atan2 (vel.y, x : 10) * Mathf.Rad2Deg;

    if (Input.GetKey (KeyCode.Space)) {
        rb.AddForce (Vector2.up * gravity * Time.deltaTime * 2000f);
    }

    if(Input.touchCount > 0)
    {
        if (Input.GetTouch(0).phase == TouchPhase.Began) 
        {
            rb.AddForce (Vector2.up * gravity * Time.deltaTime * 2000f);
        }
    }
}
2
derHugo 23 पद 2019, 08:36