Все для Unity3d> Неправильно работает OnTriggerExit2D - Форум>
  • Страница 1 из 1
  • 1
Форум » Unity » Вопросы » Неправильно работает OnTriggerExit2D (OnTriggerExit2D срабатывает когда не надо)
Неправильно работает OnTriggerExit2D
agafonkinvladimirДата: Пятница, 01.06.2018, 14:53 | Сообщение # 1
Новый писатель
Группа: Пользователи
Статус: Offline
Всем привет. Пожалуйста помогите. Есть 2 кода, один для движения, другой для проверки земли. Все работает, кроме метода OnTriggerExit2D в проверке земли. При движении он меняет grounded на false хотя персонаж в этот момент на земле и не прыгает.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class GroundCheck : MonoBehaviour
{

public Player player;

void Start()
{
player = gameObject.GetComponentInParent<Player);
}

void FixedUpdate()
{

}

void OnTriggerEnter2D(Collider2D collision)
{
player.grounded = true;
}

void OnTriggerStay2D(Collider2D collision)
{
player.grounded = true;
}

void OnTriggerExit2D(Collider2D collision)
{
player.grounded = false;

}

}

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Player : MonoBehaviour
{

public float speed = 5f, maxspeed = 5, jumpPow = 220f;
public bool grounded = true, faceright = true;
public Rigidbody2D r2;
public Animator anim;

void Start()
{
r2 = gameObject.GetComponent<Rigidbody2D);
anim = gameObject.GetComponent<Animator);
}

void Update()
{
anim.SetBool("Grounded", grounded);
anim.SetFloat("Speed", Mathf.Abs(r2.velocity.x));

if (Input.GetButtonDown("Jump"))
{
if (grounded)
{
grounded = false;
r2.AddForce(Vector2.up * jumpPow);

}
}
}

void FixedUpdate()
{
float h = Input.GetAxis("Horizontal");
r2.AddForce((Vector2.right) * speed * h);

if (r2.velocity.x > maxspeed)
r2.velocity = new Vector2(maxspeed, r2.velocity.y);
if (r2.velocity.x < -maxspeed)
r2.velocity = new Vector2(-maxspeed, r2.velocity.y);

if (h > 0 && !faceright)
{
Flip();
}

if (h < 0 && faceright)
{
Flip();
}
}

public void Flip()
{
faceright = !faceright;
Vector3 Scale;
Scale = transform.localScale;
Scale.x *= -1;
transform.localScale = Scale;
}
}
 
Форум » Unity » Вопросы » Неправильно работает OnTriggerExit2D (OnTriggerExit2D срабатывает когда не надо)
  • Страница 1 из 1
  • 1
Поиск:
Правила чата
Управление сообщениями
Мини-чат
+Мини-чат
0
ТОП-5 САЙТА
НОВЫЕ ИГРЫ
ГОРЯЧИЕ ТЕМЫ
СЛУЧАЙНЫЕ ФАЙЛЫ