Остановить объект, если он достиг значения преобразования - PullRequest
0 голосов
/ 21 ноября 2018

Итак, у меня есть двумерный игровой объект, который ведет себя подобно ловушке с шипами, которая появляется из-под земли, когда персонаж сталкивается с триггером.Я использую AddForce для 2D с жестким телом gameObject, чтобы манипулировать его скоростью при выходе из земли, и я хочу, чтобы он просто торчал из-под земли.Как я могу остановить его, когда оно достигает определенного значения Y преобразования.

enter image description here

Вот мой код:

public float speed;

Rigidbody2D rb;

void Start () {

    rb = GetComponent<Rigidbody2D>();
}

void Update () {

}

private void OnTriggerEnter2D(Collider2D collision)
{
    if (collision.gameObject.tag == "Player")
    {
       rb.AddForce(new Vector2(0, speed * Time.time), ForceMode2D.Impulse);       
    }
}

1 Ответ

0 голосов
/ 21 ноября 2018

Определенное значение преобразования или определенное значение transform.position?

Я сделаю это так:

private float threshold = 10f;
private float startPosition = 0;
private RigidBody2D pikeRigidbody;:

private void Start()
{
  startPosition =  = this.transform.position;
  pikeRigidbody = this.GetComponent<RigidBody2D>();
}

private void Update(){
  if(this.transform.position.y >= (startPosition.y + threshold))
  {
    pikeRigidbody.velocity = Vector3.zero;
  }
}

И прикреплю скрипт к объекту щуки.

Отредактировано в position.y вместо позиции

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