using UnityEngine; public class ItemCountDown : MonoBehaviour { public GameObject gameObjectRestore; //ゲームオブフェクトの復帰する座標を指定する private bool isGrabbed = false; private bool isTouching = false; public float grabItemTimeLimit = 5.0f; //ゲームオブジェクトの位置がリセットされるまでのタイマー private float timer; //スクリプト内のタイマーに用いる変数 void Start() { timer = 0.0f; } public void GetGrab() { isGrabbed = true; isTouching = true; } public void ExitGrab() { isTouching = false; } void Update() { //制限時間が0秒の場合は、位置のリセットを実行しない if (grabItemTimeLimit != 0) { if (isGrabbed == true) { if (isTouching == false) { timer += Time.deltaTime; if (timer > grabItemTimeLimit) { //ゲームオブジェクトの速度をリセット var rigidbody = GetComponent(); rigidbody.linearVelocity = Vector3.zero; //ゲームオブジェクトを指定位置に配置する rigidbody.transform.position = gameObjectRestore.transform.position; rigidbody.transform.rotation = gameObjectRestore.transform.rotation; //ゲームオブジェクトは不動の状態に戻る isGrabbed = false; timer = 0.0f; } } //プレイヤーが触っている場合はカウントダウンをリセット else { timer = 0.0f; } } } } }