Доброго времени суток, не знаю что делать, в коде ошибок нету, юнити не жалуется, вроде бы сделал всё правильно, персонаж двигается по горизонтали, но отказывается прыгать(вообще).
Это код игрока с проверкой касания спрайта.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
Joystick joystick;
Rigidbody2D rb;
public bool ground;
[SerializeField] int speed = 5;
// Start is called before the first frame update
void Start()
{
rb = GetComponent<Rigidbody2D> ();
joystick = GameObject.Find("joystick").GetComponent<Joystick>();
}
// Update is called once per frame
void Update()
{
}
void FixedUpdate(){
transform.Translate(transform.right * joystick.Horizontal * speed * Time.fixedDeltaTime);
if(joystick.Vertical > 0.5f)
Jump();
}
void Jump()
{
if(ground == true)
rb.AddForce(transform.up * 10, ForceMode2D.Impulse);
}
}
Это сам код проверки земли под ногами.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DetectGround : MonoBehaviour
{
void OnTriggerStay2D(Collider2D collision){
if (collision.gameObject.tag == "ground")
GetComponentInParent<PlayerController>().ground = true;
}
void OnTriggerExit2D(Collider2D collision){
if (collision.gameObject.tag == "ground")
GetComponentInParent<PlayerController>().ground = false;
}
}