Files
VRProject/Assets/Scripts/ItemCountDown.cs
2026-05-13 16:33:07 +09:00

63 lines
1.9 KiB
C#

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