Test追加パックVol.2
This commit is contained in:
62
Assets/Scripts/ItemCountDown.cs
Normal file
62
Assets/Scripts/ItemCountDown.cs
Normal file
@@ -0,0 +1,62 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user