Obstacle project

Instead of using time, I used a slightly more elaborated approach

  1. I created a Cube called “TrapTrigger”, removed its Mesh Renderer component, kept the Box Collider one and checked the isTrigger property

  2. Duplicated Obstacle prefab and positioned it right above “TrapTrigger” (see above)

  3. I attached to “TrapTrigger” this script that fires when the user enters “TrapTrigger” (OnEnterTrigger), awaits one second and then, bam! Gravity is applied.

Now the player has to be ready to avoid it in order not to get hit:

public class TriggerTrap : MonoBehaviour
{
    MeshRenderer obstacle;
    Rigidbody obstacleRigidbody;
    [SerializeField] float timeToWait = 1f;


    void Start()
    {
        obstacle = GetComponentInChildren<MeshRenderer>();
        obstacleRigidbody = GetComponentInChildren<Rigidbody>();

        obstacle.enabled = false;
        obstacleRigidbody.useGravity = false;
    }
    private void OnTriggerEnter(Collider other)
    {
        Debug.Log("entered trigger");
        if (Time.time > timeToWait)
        {
            obstacle.enabled = true;
            obstacleRigidbody.useGravity = true;
        }
    }
}

Privacy & Terms