using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BoxCollider : MonoBehaviour {
private float degree = 180f;
// Use this for initialization
void Start() {
}
// Update is called once per frame
void Update() {
}
void OnTriggerEnter(Collider c)
{
GameObject character = GameObject.Find(c.name);
character.transform.rotation = Quaternion.Slerp(character.transform.rotation, Quaternion.Euler(0, 0, degree), Time.deltaTime);
}
}
У меня есть два символа ThirdPersonController. Когда событие OnTriggerEnter является триггером, я вижу в c.Name "ThirdPersonController"Как я могу вращать гладкие символы на столкновении?
Я также добавил 4 пустых игровых объекта, каждый из которых добавил коробку коллайдера, установленную IsTrigger, а также приложил каждый объект игры к этому сценарию.
И я проверил, когда персонаж добрался до стены, они перестают двигаться, но продолжают ходить по месту.
Теперь я хочу, чтобы в этом месте текущий символ (или оба), который запустил событие, чтобы повернуть на 180 градусов. Но вместо этого он не делает поворот, характер/ы продолжают выходить из местности в некоторой степени изменились на оси z, я думаю.
Я думаю, что я сделал что-то неправильно с линией Quaternion.Slerp.
Что-то не так. На 4 пустых игровых объекта на каждом из них я добавил компонент коллайдера. Если я установил свойство IsTrigger в ON, то флажок установлен, когда третий оператор контролирует стену (gameobject), он перестает перемещаться, просто продолжайте ходить по месту. Но тогда это не вызывает событие OnTriggerEnter в скрипте. Если я удалю uncheckbox IsTrigger, тогда он вызовет событие, но и тогда персонаж будет продолжать выходить из местности. –
@ DanielHalfoni Вам нужно также переместить строку 'Quaternion.Slerp' в' Update' _ (потому что она использует Time.deltaTime, которая некорректна внутри OnTriggerEnter), но я не знаю, чего вы пытаетесь достичь , –
Я пытаюсь сделать так, чтобы игрок не упал и не выйдет из области местности, это моя общая цель в этом случае. –