sid4
1
I have this script that kills object , but I want the object to die only if touching the ground for 3 seconds or more. please help
using UnityEngine;
using System.Collections;
public class die : MonoBehaviour {
void OnCollisionEnter2D(Collision2D coll) {
if (coll.gameObject.CompareTag ("Ground")) {
Destroy (gameObject, 3);
}
}
}
Denvery
2
Please try to use this script:
using System;
using UnityEngine;
public class die : MonoBehaviour
{
private DateTime _startTimeOfTouch;
private bool _collisionStarted = false;
void OnCollisionEnter2D(Collision2D coll)
{
if (coll.gameObject.CompareTag("Ground"))
{
_startTimeOfTouch = DateTime.Now;
_collisionStarted = true;
}
GetComponent<Rigidbody>().sleepThreshold = 0;
}
void OnCollisionStay2D(Collision2D coll)
{
if (_collisionStarted && (DateTime.Now - _startTimeOfTouch).Seconds > 3)
{
Destroy(gameObject);
}
}
void OnCollisionExit2D(Collision2D coll)
{
_collisionStarted = false;
}
}