From f047635804e0c7e95ef329620c40ecc4534cbbaf Mon Sep 17 00:00:00 2001 From: MarcelRyan <marcel.ryan2004@gmail.com> Date: Tue, 7 May 2024 16:57:15 +0700 Subject: [PATCH] [FEAT] Safe in dollhouse with radius --- Assets/Scenes/Level01.unity | 13 +++++++ Assets/Scripts/Helpers/SaveRadius.cs | 45 +++++++++++++++++++++++ Assets/Scripts/Helpers/SaveRadius.cs.meta | 11 ++++++ 3 files changed, 69 insertions(+) create mode 100644 Assets/Scripts/Helpers/SaveRadius.cs create mode 100644 Assets/Scripts/Helpers/SaveRadius.cs.meta diff --git a/Assets/Scenes/Level01.unity b/Assets/Scenes/Level01.unity index d5d075b..b703d67 100644 --- a/Assets/Scenes/Level01.unity +++ b/Assets/Scenes/Level01.unity @@ -15274,6 +15274,7 @@ GameObject: - component: {fileID: 1879170048} - component: {fileID: 1879170047} - component: {fileID: 1879170046} + - component: {fileID: 1879170049} m_Layer: 9 m_Name: Dollhouse m_TagString: Untagged @@ -15368,6 +15369,18 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1879170044} m_Mesh: {fileID: 4300000, guid: eec0a941ebb666b458f6523bd925c87d, type: 3} +--- !u!114 &1879170049 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1879170044} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8044640b5a4f4994996823617efc0f4b, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &1882290307 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Helpers/SaveRadius.cs b/Assets/Scripts/Helpers/SaveRadius.cs new file mode 100644 index 0000000..85078bf --- /dev/null +++ b/Assets/Scripts/Helpers/SaveRadius.cs @@ -0,0 +1,45 @@ +using System.Collections; +using System.Collections.Generic; +using Nightmare; +using UnityEngine; + +public class SaveRadius : MonoBehaviour +{ + GameObject player; + bool playerInRange; + float timer; + + private void Awake() + { + player = GameObject.FindGameObjectWithTag("Player"); + } + + private void Update() + { + CheckPlayerInRange(); + timer += Time.deltaTime; + if (timer >= 1 && playerInRange && Input.GetKeyDown(KeyCode.Z)) + { + timer = 0; + DataPersistenceManager.instance.SaveGame(); + } + + } + + private void CheckPlayerInRange() + { + float distance = Mathf.Sqrt(Mathf.Pow(transform.position.x - player.transform.position.x, 2) + + Mathf.Pow(transform.position.y - player.transform.position.y, 2) + + Mathf.Pow(transform.position.z - player.transform.position.z, 2)); + + + if (distance <= 5f) + { + playerInRange = true; + } + else + { + playerInRange = false; + } + } +} diff --git a/Assets/Scripts/Helpers/SaveRadius.cs.meta b/Assets/Scripts/Helpers/SaveRadius.cs.meta new file mode 100644 index 0000000..736aa79 --- /dev/null +++ b/Assets/Scripts/Helpers/SaveRadius.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8044640b5a4f4994996823617efc0f4b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: -- GitLab