Autor Wątek: Problem z funkcją skoku gracza po dotknięciu guitexture [Touch, Android]  (Przeczytany 1038 razy)

Offline mateusy04

  • Użytkownik

# Luty 26, 2015, 22:07:05
Witam. Mam problem z funkcją skoku gracza po dotknięciu guitexture których uzywam do sterowania. Jest to prosta gra 2D gdzie przyciski do sterowania to ruch w prawo, ruch w lewo i skok za pomocą guiTexture. Skrypt na klawiaturę działa bezbłędnie, ale nie potrafię sobie poradzić ze skryptem na urządzenia mobilne (android) . Proszę o pomoc. Oto mój kod:

To kod na funkcję skoku używany przy sterowaniu klawiaturą:
//test for not jumping
if (Mathf.Abs(rigidbody2D.velocity.y) < 0.15f) {
jumping = false;
} else {
jumping = true;
}
//jump
if (Input.GetKeyDown (KeyCode.Space) && !jumping) {
rigidbody2D.AddForce(Vector2.up * jumpSpeed);
jumping = true;
}

if (jumping && !Input.GetKey (KeyCode.Space) && rigidbody2D.velocity.y > 0) {
rigidbody2D.AddForce(-Vector2.up * jumpSpeed * 0.1f);
}
To działa.

Jak to przełożyć na użycie guiTexture i dotyku?

Dodam jeszcze że ruch w prawo i w lewo działa i skrypt wygląda tak:
((joystick to skrypt własny))
if (joystickLeft.isPressed)
{
rigidbody2D.AddForce(-Vector2.right * movementSpeed * Time.deltaTime);
}
//right
if (joystickRight.isPressed)
{
rigidbody2D.AddForce(Vector2.right *  movementSpeed * Time.deltaTime);
}

Skrypt Joystick:

using UnityEngine;
using System.Collections;

public class Joystick : MonoBehaviour {

public bool isPressed = false;


// Update is called once per frame
void Update () {
isPressed = false;

int count = Input.touchCount;

for (int i = 0; i < count; i++)
{
Touch touch = Input.GetTouch(i);

if(guiTexture.HitTest(touch.position))
{
isPressed = true;
}


}

}
}


Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline pawlaks1

  • Użytkownik
    • wolf in game

# Marzec 03, 2015, 15:28:09
Tu masz troszkę bardziej rozbudowany kod odpowiedzialny za obsługę touchy http://www.devination.com/2013/06/unity-touch-input-tutorials.html. Jeśli ten skrypt działa na chodzenie to powinien i na skok.