Browse Source

Interactions

feature/interactions
Switerkly 2 years ago
parent
commit
692589a1e3
  1. 8
      Assets/GameAssets/Models/Locations/Cafe.meta
  2. 17
      Assets/GameAssets/Scripts/CameraController.cs
  3. 8
      Assets/GameAssets/Scripts/Characters.meta
  4. 8
      Assets/GameAssets/Scripts/EmojiPopup.meta
  5. 5
      Assets/GameAssets/Scripts/Interactions/Interactable.cs
  6. 3
      Assets/GameAssets/Scripts/Interactions/Interaction.cs
  7. 15
      Assets/GameAssets/Scripts/Interactions/InteractionManager.cs
  8. 2
      Assets/GameAssets/Scripts/Location/SceneLoader.cs
  9. 42
      Assets/GameAssets/Scripts/SerializableDictionary.cs
  10. 11
      Assets/GameAssets/Scripts/SerializableDictionary.cs.meta
  11. 2
      Assets/GameAssets/Textures.meta

8
Assets/GameAssets/Models/Locations/Cafe.meta

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: c29c7105d7dfad3419d3b8846bfd07d1
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

17
Assets/GameAssets/Scripts/CameraController.cs

@ -5,14 +5,14 @@ using UnityEngine.EventSystems;
public class CameraController : MonoBehaviour
{
public Transform target;
[SerializeField] private Transform target;
public float smoothSpeed = 8f;
public Vector3 offset;
[SerializeField] private float smoothSpeed = 8f;
[SerializeField] private Vector3 offset;
public float scrollSensitivity = 2f;
public float minDistance = 2f;
public float maxDistance = 10f;
[SerializeField] private float scrollSensitivity = 2f;
[SerializeField] private float minDistance = 2f;
[SerializeField] private float maxDistance = 10f;
[SerializeField] private float distance;
@ -36,4 +36,9 @@ public class CameraController : MonoBehaviour
Vector3 smoothedPosition = Vector3.Lerp(transform.position, desiredPosition, smoothSpeed * Time.deltaTime);
transform.position = smoothedPosition;
}
public void SetTarget(Transform target)
{
this.target = target;
}
}

8
Assets/GameAssets/Scripts/Characters.meta

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 6c002839c7f1a8f4495d3dce578bbfe4
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

8
Assets/GameAssets/Scripts/EmojiPopup.meta

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 534b8ba6a555eec44a82b79d6fac0af8
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

5
Assets/GameAssets/Scripts/Interactions/Interactable.cs

@ -5,7 +5,8 @@ using UnityEngine;
public class Interactable : MonoBehaviour
{
[SerializeField] protected new Collider collider;
[SerializeField] protected Collider _collider;
[SerializeField] protected Player user;
[SerializeField] protected List<Interaction> interactions;
public List<Interaction> Interactions => interactions;
@ -27,7 +28,7 @@ public class Interactable : MonoBehaviour
public void CreateInteractions()
{
int count = ActiveInteractionsCount;
Bounds obj = collider.bounds;
Bounds obj = _collider.bounds;
float sizeobj = 1f;
float sizebtw = 0.2f;

3
Assets/GameAssets/Scripts/Interactions/Interaction.cs

@ -15,9 +15,10 @@ public class Interaction
public void Action()
{
InteractionManager.Instance.Deactivate();
if (point)
{
InteractionManager.LocalPlayer.Movement?.MoveTo(point.transform.position, PostAction);
InteractionManager.LocalPlayer.Movement?.MoveToBlock(point.transform.position, PostAction);
}
else
{

15
Assets/GameAssets/Scripts/Interactions/InteractionManager.cs

@ -5,7 +5,6 @@ using UnityEditor;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
using static UnityEditor.Progress;
public class InteractionManager : MonoBehaviour
{
@ -20,6 +19,7 @@ public class InteractionManager : MonoBehaviour
}
[SerializeField] private Player localPlayer;
[SerializeField] private CameraController cameraController;
[Header("Layers")]
[SerializeField] private LayerMask clickableLayers;
@ -29,7 +29,6 @@ public class InteractionManager : MonoBehaviour
[Header("Interaction")]
[SerializeField] private List<string> blockReasons;
[SerializeField, ReadOnly] private bool active;
[SerializeField, ReadOnly] private Item item;
[SerializeField, ReadOnly] private Interactable interactable;
public static Interactable Interactable => Instance.interactable;
@ -131,7 +130,6 @@ public class InteractionManager : MonoBehaviour
{
this.interactable = interactable;
SetActive(true);
//Player.Instance.LookAt(interactive.transform.position);
localPlayer.Movement.StopMovement();
interactable.CreateInteractions();
}
@ -146,12 +144,21 @@ public class InteractionManager : MonoBehaviour
public void SetLocalPlayer(Player player)
{
if (!player.IsMine)
if (!player.IsOwner)
{
Debug.LogError("Trying to assign not owned player");
return;
}
localPlayer = player;
cameraController.SetTarget(player.transform);
}
public void InteractTest()
{
if (interactable)
{
interactable.Interactions[0].Action();
}
}
}

2
Assets/GameAssets/Scripts/Location/SceneLoader.cs

@ -14,6 +14,7 @@ public class SceneLoader : MonoBehaviour
[Header("Scenes")]
[SerializeField] private string debugScene;
[SerializeField] private GameObject disableTest;
[SerializeField] private List<string> loadedScenes;
[Header("ReadOnly")]
@ -28,6 +29,7 @@ public class SceneLoader : MonoBehaviour
}
public void LoadScene(string sceneName, Action onLoad)
{
disableTest.SetActive(false);
if (loading)
{
Debug.LogWarning("Scene can't start loading if the other scene not loaded yet.");

42
Assets/GameAssets/Scripts/SerializableDictionary.cs

@ -0,0 +1,42 @@
using System;
using System.Collections.Generic;
using UnityEngine;
[Serializable]
public class SerializableDictionary<TKey, TValue>
{
[Serializable]
public class Node
{
public TKey key;
public TValue value;
}
[SerializeField] private List<Node> nodes;
private Dictionary<TKey, TValue> dictionary;
public Dictionary<TKey, TValue> Dictionary
{
get
{
if (dictionary == null)
{
dictionary = ToDictionary();
}
return dictionary;
}
}
private Dictionary<TKey, TValue> ToDictionary()
{
Dictionary<TKey, TValue> dictionary = new Dictionary<TKey, TValue>();
foreach(Node node in nodes)
{
dictionary.Add(node.key, node.value);
}
return dictionary;
}
}

11
Assets/GameAssets/Scripts/SerializableDictionary.cs.meta

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: f0c498d09fc5d894091171a91d517fbb
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

2
Assets/GameAssets/Textures.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: db7b31f478c64da47bf1ccc0c3c300d4
guid: 3ada3be75e235e34c8c5b5460a841bd9
folderAsset: yes
DefaultImporter:
externalObjects: {}

Loading…
Cancel
Save