У меня проблемы с поиском ошибки в сценарии автоматического перемещения. Сначала я объясню, что я пытался сделать, чтобы вы лучше поняли. Так что я программирую на C # в единстве. Это для VR. Я создал кнопку, которая работает как триггер, когда вы на нее смотрите. При взгляде на кнопку дверь опускается, и игрок должен двигаться внутри замка (автоматически).
Дверной скрипт работает нормально, но игрок вообще не двигается. Я использовал общедоступный Vector3, где я объявил позицию внутри замка, куда игрок должен двигаться (это только прямое направление).
К сожалению, код выглядит хорошо для меня, и я не могу понять, почему мой плеер не будет двигаться: /.
Поэтому я попытался поиграть с «Векторами», но мне не повезло.
{
public float speed = 0.5f;
public Vector3 castlePosition;
private Vector3 targetPosition;
// Start is called before the first frame update
void Start()
{
targetPosition = transform.position;
}
// Update is called once per frame
void Update()
{
RaycastHit hit;
if (Physics.Raycast(transform.position, transform.forward, out hit))
{
if(hit.transform.GetComponent<DoorButton>() != null)
{
hit.transform.GetComponent<DoorButton>().OnLook();
MoveToCastle ();
}
}
transform.position = Vector3.Lerp(transform.position, targetPosition, Time.deltaTime * speed);
}
private void MoveToCastle()
{
targetPosition = castlePosition;
}
}
Я ожидал, что функция MoveToCastle
поместит моего игрока в замок (в положение, которое я объявил ранее).
Еще раз функция OnLook
от моей двери работает.
Заранее благодарю за помощь. :)