Unity OnTriggerEnter - PullRequest
       0

Unity OnTriggerEnter

0 голосов
/ 22 мая 2018

Я хочу, чтобы мой игрок столкнулся с капсулой объекта.Это действие должно уничтожить капсулу и добавить игроку значение скорости 10.

Но этот код не работает:

public class PlayerController : MonoBehaviour {
public KeyCode moveL;
public KeyCode moveR;

public float horizontal = 0;
public int laneNum = 2;
public string controllocked = "n";

public float speed;

void Update ()
{
    GetComponent<Rigidbody>().velocity = new Vector3(horizontal, GM.verticalVelocity, speed);

    if ((Input.GetKeyDown(moveL)) && (laneNum > 1) && (controllocked == "n"))
    {
        horizontal = -2;
        StartCoroutine(StopSlide());
        laneNum = laneNum - 1;
        controllocked = "y";
    }
    else if ((Input.GetKeyDown(moveR)) && (laneNum < 3) && (controllocked =="n"))
    {
        horizontal = 2;
        laneNum = laneNum + 1;
        StartCoroutine(StopSlide());
        controllocked = "y";
    }
}

void OnCollisionEnter(Collision other)
{
    if(other.gameObject.tag == "lethal")
    {
        Destroy(gameObject);
    }
    if (other.gameObject.name == "Capsule")
    {
        Destroy(other.gameObject);
        speed = 10;   
    }
}

IEnumerator StopSlide()
{
    yield return new WaitForSeconds(.5f);
    horizontal = 0;
    controllocked = "n";
}

То, что я до сих пор пробовал, это speed += 10и speed++ ни работает.

1 Ответ

0 голосов
/ 22 мая 2018

Ну, сначала попробуйте проверить своего игрока, какой тип коллайдера вы используете в плеере?Убедитесь, что вы проверили триггер в компоненте коллайдера и добавили в него жесткое тело.На капсульном объекте должно быть твердое тело.Надеюсь, это поможет.Используйте OnTriggerEnter (коллайдер коллайдер), если вы хотите использовать триггерент.Столкновение входит в работу, если триггер не проверен

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...