Коллайдер не работает, если объект не движется - PullRequest
0 голосов
/ 25 августа 2018

Я попытался сделать лифт, и я нашел то, что не мог объяснить.

Итак, вот сценарий:

Как только я положу свой объект (в данном случае куб) на лифт, он будет подниматься и опускаться. Если объект остается без движения и ждет следующей поездки, столкновение прекратится, когда лифт вернется через землю.

Если объект движется, когда лифт возвращается, все в порядке, и объект отправляется в другую поездку.

Может ли кто-нибудь объяснить мне, почему это происходит, и есть ли исправление для этого?

Ожидается, что платформа пройдет сквозь землю и поднимет предмет, как только он вернется над землей. (Представьте, что не все в лифте сектры)

Я уже попытался добавить скрипт DontGoThroughThings.cs. Это тоже не сработало.

Вот скриншот инспекторов. enter image description here

Вот сценарий, который я сделал для лифта, чтобы подниматься и опускаться.

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;
    }
}

Если вам нужна дополнительная информация, оставьте комментарий. Спасибо

1 Ответ

0 голосов
/ 25 августа 2018

Вам необходимо добавить RigidBody к вашему объекту лифта, а затем проверить опцию «Is Kinematic» на нем.

Из документации Unity Руководство по RigidBody :

Is Kinematic : Если этот параметр включен, объект не будет управляться физическим движком, а может управляться только его Transform . Это полезно для движущихся платформ или если вы хотите анимировать Rigidbody, к которому прикреплен HingeJoint .

...