using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BoxCollider : MonoBehaviour {
private float degrees = 180f;
public float rotateSpeed = 10f;
private GameObject character;
private bool entered = false;
// Use this for initialization
void Start()
{
}
// Update is called once per frame
void Update()
{
if (entered == true)
{
character.transform.rotation = Quaternion.Slerp(character.transform.rotation, Quaternion.Euler(degrees, 0, degrees), rotateSpeed * Time.deltaTime);
}
}
void OnTriggerEnter(Collider c)
{
character = c.gameObject;
entered = true;
}
}
В первый раз персонаж сталкивается с стеной (пустой игровой объект с полевым коллайдером), он меняет введенный на истину и вращает символ.Как я могу использовать переменные bool логически, когда символ сталкивается с полем?
Но при столкновении с другой стеной после повернутым и достиг другой стены я использовал контрольную точку, и она становится в части:
void OnTriggerEnter(Collider c)
{
character = c.gameObject;
entered = true;
}
Но тогда, когда она становится все функции Update:
if (entered == true)
Я использовал точку останова на этой строке и ввел false. Не знаете, почему.
На первом столкновении со стеной это правда, но на втором столкновении со стеной это неверно.
Причина, по которой я использую этот bool, состоит в том, чтобы вращать символ только при столкновении с стеной (поле).
У меня есть 4 пустых игровых объекта вокруг ландшафта, у каждого из которых есть коллайдер box istrigger, а также этот скрипт привязан к каждому игровому объекту.
Я не могу понять, почему первый раз вступил, правда, второй раз это ложь.
Уверен, что вы видите/отлаживаете правильную сущность? (Часто точки останова в многократно используемых объектах путают, если не вводят в заблуждение.) – RuDevel