mirror of
https://github.com/DerTyp7/example-top-down-unity.git
synced 2026-07-31 15:29:02 +02:00
Merge branch 'main' into Tools
This commit is contained in:
8
Assets/Scripts/Calendar.meta
Normal file
8
Assets/Scripts/Calendar.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 419a6c97c6863fe4bba52001e71d1df1
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
72
Assets/Scripts/Calendar/Calendar.cs
Normal file
72
Assets/Scripts/Calendar/Calendar.cs
Normal file
@@ -0,0 +1,72 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using TMPro;
|
||||
|
||||
public class Calendar : MonoBehaviour
|
||||
{
|
||||
TimeManager timeManager;
|
||||
Image prevImage;
|
||||
Transform daysTransform;
|
||||
|
||||
[SerializeField]
|
||||
Color currentDayColor;
|
||||
Color originDayColor;
|
||||
|
||||
[SerializeField]
|
||||
TextMeshProUGUI monthText;
|
||||
[SerializeField]
|
||||
TextMeshProUGUI yearText;
|
||||
|
||||
|
||||
private void Start()
|
||||
{
|
||||
daysTransform = transform.Find("Days");
|
||||
timeManager = GameObject.Find("GameManager").GetComponent<TimeManager>();
|
||||
originDayColor = daysTransform.Find("1").gameObject.GetComponent<Image>().color;
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
if(gameObject.activeSelf)
|
||||
RefreshCalendar();
|
||||
}
|
||||
|
||||
void RefreshCalendar()
|
||||
{
|
||||
DateTime dateTime = timeManager.GetDateTime();
|
||||
|
||||
int counter;
|
||||
|
||||
int daysInMonth = DateTime.DaysInMonth(dateTime.Year, dateTime.Month);
|
||||
|
||||
monthText.text = dateTime.ToString("MMMM");
|
||||
yearText.text = dateTime.ToString("yyyy");
|
||||
|
||||
counter = 1;
|
||||
while (counter <= 31)
|
||||
{
|
||||
if (counter >= daysInMonth + 1)
|
||||
{
|
||||
daysTransform.Find(counter.ToString()).gameObject.SetActive(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
daysTransform.Find(counter.ToString()).gameObject.SetActive(true);
|
||||
}
|
||||
|
||||
counter++;
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (prevImage != daysTransform.Find(dateTime.Day.ToString()).gameObject.GetComponent<Image>())
|
||||
{
|
||||
if (prevImage != null)
|
||||
prevImage.color = originDayColor;
|
||||
|
||||
daysTransform.Find(dateTime.Day.ToString()).gameObject.GetComponent<Image>().color = currentDayColor;
|
||||
prevImage = daysTransform.Find(dateTime.Day.ToString()).gameObject.GetComponent<Image>();
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/Scripts/Calendar/Calendar.cs.meta
Normal file
11
Assets/Scripts/Calendar/Calendar.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 96c62da3e09569940847187705433290
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Scripts/CharSprites.meta
Normal file
8
Assets/Scripts/CharSprites.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 741c7832dc601f543a927012a305d288
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
16
Assets/Scripts/CharSprites/0.asset
Normal file
16
Assets/Scripts/CharSprites/0.asset
Normal file
@@ -0,0 +1,16 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 56080594b83657b43bd583e66fc21ec2, type: 3}
|
||||
m_Name: 0
|
||||
m_EditorClassIdentifier:
|
||||
character: 48
|
||||
sprite: {fileID: -137505861, guid: 5e57c8b70699ac44aab52f27c9fdb5f3, type: 3}
|
||||
8
Assets/Scripts/CharSprites/0.asset.meta
Normal file
8
Assets/Scripts/CharSprites/0.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5cf69db9da6a3174fbf1c2db03e4d273
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
16
Assets/Scripts/CharSprites/1.asset
Normal file
16
Assets/Scripts/CharSprites/1.asset
Normal file
@@ -0,0 +1,16 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 56080594b83657b43bd583e66fc21ec2, type: 3}
|
||||
m_Name: 1
|
||||
m_EditorClassIdentifier:
|
||||
character: 49
|
||||
sprite: {fileID: -962980277, guid: 5e57c8b70699ac44aab52f27c9fdb5f3, type: 3}
|
||||
8
Assets/Scripts/CharSprites/1.asset.meta
Normal file
8
Assets/Scripts/CharSprites/1.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f0634e776b7110740b86e03f868a8f61
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
16
Assets/Scripts/CharSprites/2.asset
Normal file
16
Assets/Scripts/CharSprites/2.asset
Normal file
@@ -0,0 +1,16 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 56080594b83657b43bd583e66fc21ec2, type: 3}
|
||||
m_Name: 2
|
||||
m_EditorClassIdentifier:
|
||||
character: 50
|
||||
sprite: {fileID: 487589554, guid: 5e57c8b70699ac44aab52f27c9fdb5f3, type: 3}
|
||||
8
Assets/Scripts/CharSprites/2.asset.meta
Normal file
8
Assets/Scripts/CharSprites/2.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1ccbdb38e3f0ee544abe81a6ddb0950c
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
16
Assets/Scripts/CharSprites/3.asset
Normal file
16
Assets/Scripts/CharSprites/3.asset
Normal file
@@ -0,0 +1,16 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 56080594b83657b43bd583e66fc21ec2, type: 3}
|
||||
m_Name: 3
|
||||
m_EditorClassIdentifier:
|
||||
character: 51
|
||||
sprite: {fileID: 74470796, guid: 5e57c8b70699ac44aab52f27c9fdb5f3, type: 3}
|
||||
8
Assets/Scripts/CharSprites/3.asset.meta
Normal file
8
Assets/Scripts/CharSprites/3.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ef26f62b59eb70d4194ec17eec59b1fb
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
16
Assets/Scripts/CharSprites/4.asset
Normal file
16
Assets/Scripts/CharSprites/4.asset
Normal file
@@ -0,0 +1,16 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 56080594b83657b43bd583e66fc21ec2, type: 3}
|
||||
m_Name: 4
|
||||
m_EditorClassIdentifier:
|
||||
character: 52
|
||||
sprite: {fileID: -896167774, guid: 5e57c8b70699ac44aab52f27c9fdb5f3, type: 3}
|
||||
8
Assets/Scripts/CharSprites/4.asset.meta
Normal file
8
Assets/Scripts/CharSprites/4.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 91df1f9de99188447a6d391f4fdd91a9
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
16
Assets/Scripts/CharSprites/5.asset
Normal file
16
Assets/Scripts/CharSprites/5.asset
Normal file
@@ -0,0 +1,16 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 56080594b83657b43bd583e66fc21ec2, type: 3}
|
||||
m_Name: 5
|
||||
m_EditorClassIdentifier:
|
||||
character: 53
|
||||
sprite: {fileID: 764630823, guid: 5e57c8b70699ac44aab52f27c9fdb5f3, type: 3}
|
||||
8
Assets/Scripts/CharSprites/5.asset.meta
Normal file
8
Assets/Scripts/CharSprites/5.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a4230635bd95e104192dc0de15fe1d80
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
16
Assets/Scripts/CharSprites/6.asset
Normal file
16
Assets/Scripts/CharSprites/6.asset
Normal file
@@ -0,0 +1,16 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 56080594b83657b43bd583e66fc21ec2, type: 3}
|
||||
m_Name: 6
|
||||
m_EditorClassIdentifier:
|
||||
character: 54
|
||||
sprite: {fileID: 202394885, guid: 5e57c8b70699ac44aab52f27c9fdb5f3, type: 3}
|
||||
8
Assets/Scripts/CharSprites/6.asset.meta
Normal file
8
Assets/Scripts/CharSprites/6.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 654dd30445678804a98c11ce29a6cc9f
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
16
Assets/Scripts/CharSprites/7.asset
Normal file
16
Assets/Scripts/CharSprites/7.asset
Normal file
@@ -0,0 +1,16 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 56080594b83657b43bd583e66fc21ec2, type: 3}
|
||||
m_Name: 7
|
||||
m_EditorClassIdentifier:
|
||||
character: 55
|
||||
sprite: {fileID: 139823083, guid: 5e57c8b70699ac44aab52f27c9fdb5f3, type: 3}
|
||||
8
Assets/Scripts/CharSprites/7.asset.meta
Normal file
8
Assets/Scripts/CharSprites/7.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 907350cffbf366f429b2ee2b1ac21fb9
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
16
Assets/Scripts/CharSprites/8.asset
Normal file
16
Assets/Scripts/CharSprites/8.asset
Normal file
@@ -0,0 +1,16 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 56080594b83657b43bd583e66fc21ec2, type: 3}
|
||||
m_Name: 8
|
||||
m_EditorClassIdentifier:
|
||||
character: 56
|
||||
sprite: {fileID: 1521955375, guid: 5e57c8b70699ac44aab52f27c9fdb5f3, type: 3}
|
||||
8
Assets/Scripts/CharSprites/8.asset.meta
Normal file
8
Assets/Scripts/CharSprites/8.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6a45ecd7a629b5a408b83f8d65f6a450
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
16
Assets/Scripts/CharSprites/9.asset
Normal file
16
Assets/Scripts/CharSprites/9.asset
Normal file
@@ -0,0 +1,16 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 56080594b83657b43bd583e66fc21ec2, type: 3}
|
||||
m_Name: 9
|
||||
m_EditorClassIdentifier:
|
||||
character: 57
|
||||
sprite: {fileID: -282099095, guid: 5e57c8b70699ac44aab52f27c9fdb5f3, type: 3}
|
||||
8
Assets/Scripts/CharSprites/9.asset.meta
Normal file
8
Assets/Scripts/CharSprites/9.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 452f75a9bed11884fa0624c79e300113
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
10
Assets/Scripts/CharSprites/CharSprite.cs
Normal file
10
Assets/Scripts/CharSprites/CharSprite.cs
Normal file
@@ -0,0 +1,10 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
[CreateAssetMenu(fileName = "CharSprite", menuName = "CharSprite", order = 1)]
|
||||
public class CharSprite : ScriptableObject
|
||||
{
|
||||
public char character;
|
||||
public Sprite sprite;
|
||||
}
|
||||
11
Assets/Scripts/CharSprites/CharSprite.cs.meta
Normal file
11
Assets/Scripts/CharSprites/CharSprite.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 56080594b83657b43bd583e66fc21ec2
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
10
Assets/Scripts/CharToSprite.cs
Normal file
10
Assets/Scripts/CharToSprite.cs
Normal file
@@ -0,0 +1,10 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class CharToSprite
|
||||
{
|
||||
[SerializeField]
|
||||
List<Sprite> sprites = new List<Sprite>();
|
||||
|
||||
}
|
||||
11
Assets/Scripts/CharToSprite.cs.meta
Normal file
11
Assets/Scripts/CharToSprite.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: feba03cebe25b2642880b207d200fbec
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Scripts/Player.meta
Normal file
8
Assets/Scripts/Player.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 415ae7da5bed43345b965569c9070e15
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
11
Assets/Scripts/Player/Player.cs
Normal file
11
Assets/Scripts/Player/Player.cs
Normal file
@@ -0,0 +1,11 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class Player : MonoBehaviour
|
||||
{
|
||||
public void Die()
|
||||
{
|
||||
Debug.Log("----- PLAYER DIED!!! -----");
|
||||
}
|
||||
}
|
||||
11
Assets/Scripts/Player/Player.cs.meta
Normal file
11
Assets/Scripts/Player/Player.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5ee4c18f008d122488cbb74c779ef5c4
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -5,7 +5,14 @@ using UnityEngine;
|
||||
// Handles the player input, such as interactions
|
||||
public class PlayerController : MonoBehaviour
|
||||
{
|
||||
[SerializeField]
|
||||
GameObject calendar;
|
||||
|
||||
void Update()
|
||||
{
|
||||
if (Input.GetButtonDown("Calendar") && calendar != null)
|
||||
{
|
||||
calendar.SetActive(!calendar.activeSelf);
|
||||
}
|
||||
}
|
||||
}
|
||||
105
Assets/Scripts/Player/PlayerInteraction.cs
Normal file
105
Assets/Scripts/Player/PlayerInteraction.cs
Normal file
@@ -0,0 +1,105 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using TMPro;
|
||||
using UnityEngine.UI;
|
||||
public class PlayerInteraction : MonoBehaviour
|
||||
{
|
||||
[SerializeField]
|
||||
TextMeshProUGUI interactionText;
|
||||
|
||||
[SerializeField]
|
||||
Image interactionProgressImg;
|
||||
|
||||
void Update()
|
||||
{
|
||||
bool successfulHit = false;
|
||||
RaycastHit2D hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero);
|
||||
|
||||
if(hit.collider != null)
|
||||
{
|
||||
Interactable interactable = hit.collider.gameObject.GetComponent<Interactable>();
|
||||
|
||||
if(interactable != null)
|
||||
{
|
||||
// Debug.Log("Target Position: " + hit.collider.gameObject.transform.position);
|
||||
HandleInteraction(interactable);
|
||||
successfulHit = true;
|
||||
HandleInteractionText(interactable);
|
||||
HandleInteractionProgress(interactable);
|
||||
}
|
||||
}
|
||||
|
||||
if (!successfulHit)
|
||||
{
|
||||
interactionText.text = "";
|
||||
interactionProgressImg.fillAmount = 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void HandleInteractionProgress(Interactable interactable)
|
||||
{
|
||||
interactionProgressImg.fillAmount = interactable.GetHoldTime() / interactable.GetHoldDuration();
|
||||
}
|
||||
|
||||
void HandleInteractionText(Interactable interactable)
|
||||
{
|
||||
interactionText.text = interactable.GetDescription();
|
||||
interactionText.transform.position = new Vector3(Input.mousePosition.x + interactionText.rectTransform.sizeDelta.x / 2 + 20, Input.mousePosition.y - 5, Input.mousePosition.z);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <c>HandleInteraction</c> <strong>handles the player interaction based on the Interactable.InteractionType.</strong>
|
||||
/// </summary>
|
||||
/// <param name="interactable"></param>
|
||||
void HandleInteraction(Interactable interactable)
|
||||
{
|
||||
switch (interactable.interactionType)
|
||||
{
|
||||
case Interactable.InteractionType.Click:
|
||||
if (Input.GetButtonDown("Interact") && interactable.isInRange())
|
||||
{
|
||||
interactable.Interact();
|
||||
}
|
||||
break;
|
||||
case Interactable.InteractionType.Hold:
|
||||
if (Input.GetButton("Interact") && interactable.isInRange())
|
||||
{
|
||||
interactable.IncreaseHoldTime();
|
||||
|
||||
if(interactable.GetHoldTime() > interactable.GetHoldDuration())
|
||||
{
|
||||
interactable.Interact();
|
||||
interactable.ResetHoldTime();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
interactable.ResetHoldTime();
|
||||
}
|
||||
break;
|
||||
case Interactable.InteractionType.Harvest:
|
||||
Harvestable harvestable = interactable.GetComponent<Harvestable>();
|
||||
ToolItem toolItem = (ToolItem)GetComponent<InventoryController>().selectedItem;
|
||||
|
||||
bool isCorrectTool = (toolItem != null && toolItem.toolType == harvestable.toolType);
|
||||
|
||||
|
||||
|
||||
if (Input.GetButton("Interact") && interactable.isInRange() && isCorrectTool)
|
||||
{
|
||||
harvestable.IncreaseHarvestTime();
|
||||
|
||||
if (harvestable.GetHarvestTime() >= harvestable.GetHarvestDuration())
|
||||
{
|
||||
harvestable.Interact();
|
||||
harvestable.ResetHarvestTime();
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
throw new System.Exception("Unsupported type of interactable");
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/Scripts/Player/PlayerInteraction.cs.meta
Normal file
11
Assets/Scripts/Player/PlayerInteraction.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c17c7c66da95ea747b93edf1da56ba16
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
68
Assets/Scripts/TimeManager.cs
Normal file
68
Assets/Scripts/TimeManager.cs
Normal file
@@ -0,0 +1,68 @@
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class TimeManager : MonoBehaviour
|
||||
{
|
||||
public static Action OnTimeInterval;
|
||||
public static TimeManager instance;
|
||||
|
||||
public enum PartOfDay
|
||||
{
|
||||
MORNING,
|
||||
AFTERNOON,
|
||||
EVENING,
|
||||
NIGHT
|
||||
}
|
||||
|
||||
public PartOfDay partOfDay;
|
||||
|
||||
[SerializeField]
|
||||
float intervalTime = 1.0f; // 1.0f -> 1 real second is 1 ingame minute
|
||||
|
||||
int minutesPerInterval = 1;
|
||||
|
||||
public CultureInfo cultureInfo = new CultureInfo("en-us");
|
||||
DateTime dateTime = new DateTime(1, 1, 1, 0, 0, 0);
|
||||
float timer;
|
||||
|
||||
public DateTime GetDateTime() => dateTime;
|
||||
|
||||
public string GetTime() => dateTime.ToString("hh:mm tt", cultureInfo);
|
||||
public string GetDate() => dateTime.ToString("dd/mm/yyyy", cultureInfo);
|
||||
public float GetintervalTime() => intervalTime;
|
||||
|
||||
|
||||
void Start()
|
||||
{
|
||||
timer = intervalTime;
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
timer -= Time.deltaTime;
|
||||
|
||||
if (timer <= 0)
|
||||
{
|
||||
dateTime = dateTime.AddMinutes(minutesPerInterval);
|
||||
CheckPartsOfDay();
|
||||
OnTimeInterval?.Invoke();
|
||||
timer = intervalTime;
|
||||
}
|
||||
}
|
||||
|
||||
void CheckPartsOfDay()
|
||||
{
|
||||
if (dateTime.Hour >= 22)
|
||||
partOfDay = PartOfDay.NIGHT;
|
||||
else if(dateTime.Hour < 6)
|
||||
partOfDay = PartOfDay.NIGHT;
|
||||
else if (dateTime.Hour >= 6 && dateTime.Hour < 12)
|
||||
partOfDay = PartOfDay.MORNING;
|
||||
else if (dateTime.Hour >= 12 && dateTime.Hour < 17)
|
||||
partOfDay = PartOfDay.AFTERNOON;
|
||||
else if (dateTime.Hour >= 17 && dateTime.Hour < 22)
|
||||
partOfDay = PartOfDay.EVENING;
|
||||
}
|
||||
}
|
||||
11
Assets/Scripts/TimeManager.cs.meta
Normal file
11
Assets/Scripts/TimeManager.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4d46ba76ed78c6c41805320f865295d6
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
24
Assets/Scripts/TimeUI.cs
Normal file
24
Assets/Scripts/TimeUI.cs
Normal file
@@ -0,0 +1,24 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using TMPro;
|
||||
|
||||
public class TimeUI : MonoBehaviour
|
||||
{
|
||||
[SerializeField]
|
||||
TextMeshProUGUI dateTimeText;
|
||||
TimeManager timeManager;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
timeManager = GameObject.Find("GameManager").GetComponent<TimeManager>();
|
||||
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
DateTime dateTime = timeManager.GetDateTime();
|
||||
if (dateTimeText != null)
|
||||
dateTimeText.text = dateTime.ToString("hh:mm tt / dd.MM.yyyy", timeManager.cultureInfo);
|
||||
}
|
||||
}
|
||||
11
Assets/Scripts/TimeUI.cs.meta
Normal file
11
Assets/Scripts/TimeUI.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e980066e5baa94e4c993240ec95348fe
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
59
Assets/Scripts/Vitality.cs
Normal file
59
Assets/Scripts/Vitality.cs
Normal file
@@ -0,0 +1,59 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class Vitality : MonoBehaviour
|
||||
{
|
||||
Player player;
|
||||
|
||||
[Header("Vitality")]
|
||||
[Range(0f, 1f)]
|
||||
[SerializeField]
|
||||
public float health = 1f;
|
||||
|
||||
[Range(0f, 1f)]
|
||||
[SerializeField]
|
||||
public float food = 1f;
|
||||
|
||||
[Range(0f, 1f)]
|
||||
[SerializeField]
|
||||
public float drink = 1f;
|
||||
|
||||
[Header("Vitality Modifier Per Interval")]
|
||||
[Range(0f, 50f)]
|
||||
[SerializeField]
|
||||
float healthModifier = 30f;
|
||||
|
||||
[Range(0f, 5f)]
|
||||
[SerializeField]
|
||||
float foodModifier = 0.4f;
|
||||
|
||||
[Range(0f, 5f)]
|
||||
[SerializeField]
|
||||
float drinkModifier = 0.6f;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
TimeManager.OnTimeInterval += VitalityInterval;
|
||||
player = gameObject.GetComponent<Player>();
|
||||
}
|
||||
|
||||
|
||||
void VitalityInterval()
|
||||
{
|
||||
|
||||
food -= foodModifier / 1000;
|
||||
drink -= drinkModifier / 1000;
|
||||
|
||||
if(food <= 0f || drink <= 0f)
|
||||
{
|
||||
health -= healthModifier / 1000;
|
||||
}
|
||||
|
||||
if(health <= 0f)
|
||||
{
|
||||
player.Die();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
11
Assets/Scripts/Vitality.cs.meta
Normal file
11
Assets/Scripts/Vitality.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 259b4dba2ac00aa4983a6562c5f4eed5
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
32
Assets/Scripts/VitalityUI.cs
Normal file
32
Assets/Scripts/VitalityUI.cs
Normal file
@@ -0,0 +1,32 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class VitalityUI : MonoBehaviour
|
||||
{
|
||||
Vitality playerVitality;
|
||||
|
||||
[SerializeField]
|
||||
Image healthBar;
|
||||
|
||||
[SerializeField]
|
||||
Image foodBar;
|
||||
|
||||
[SerializeField]
|
||||
Image drinkBar;
|
||||
|
||||
|
||||
private void Start()
|
||||
{
|
||||
TimeManager.OnTimeInterval += UpdateBars;
|
||||
playerVitality = GameObject.Find("Player").GetComponent<Vitality>();
|
||||
}
|
||||
|
||||
void UpdateBars()
|
||||
{
|
||||
healthBar.fillAmount = playerVitality.health;
|
||||
foodBar.fillAmount = playerVitality.food;
|
||||
drinkBar.fillAmount = playerVitality.drink;
|
||||
}
|
||||
}
|
||||
11
Assets/Scripts/VitalityUI.cs.meta
Normal file
11
Assets/Scripts/VitalityUI.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4ba453e35e0237c4b8b18316c15c160c
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user