Я попытался сделать лифт, и я нашел то, что не мог объяснить.
Итак, вот сценарий:
Как только я положу свой объект (в данном случае куб) на лифт, он будет подниматься и опускаться.
Если объект остается без движения и ждет следующей поездки, столкновение прекратится, когда лифт вернется через землю.
Если объект движется, когда лифт возвращается, все в порядке, и объект отправляется в другую поездку.
Может ли кто-нибудь объяснить мне, почему это происходит, и есть ли исправление для этого?
Ожидается, что платформа пройдет сквозь землю и поднимет предмет, как только он вернется над землей. (Представьте, что не все в лифте сектры)
Я уже попытался добавить скрипт DontGoThroughThings.cs. Это тоже не сработало.
Вот скриншот инспекторов.
Вот сценарий, который я сделал для лифта, чтобы подниматься и опускаться.
Elevator.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Elevator: MonoBehaviour {
public float speed;
public float distance;
private bool goingUp;
void Start () {
goingUp = true;
}
void Update () {
var currentPosition = transform.position;
currentPosition.y = goingUpDown(currentPosition.y);
transform.position = currentPosition;
}
private float goingUpDown(float currentPosition)
{
if (goingUp)
currentPosition += speed;
else
currentPosition -= speed;
if (currentPosition > distance / 2)
goingUp = false;
if (currentPosition < -distance / 2)
goingUp = true;
return currentPosition;
}
}
Если вам нужна дополнительная информация, оставьте комментарий. Спасибо