GlobalGameJam-2021/Assets/Scripts/ObjectManager.cs

94 lines
3.1 KiB
C#
Raw Normal View History

2021-01-29 22:56:23 +00:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ObjectManager : MonoBehaviour
{
2021-01-30 15:16:42 +00:00
public enum ObjectType {Nothing, PushPull, Drag};
2021-01-29 22:56:23 +00:00
public ObjectType objectType = ObjectType.Nothing;
private Rigidbody rigidBody;
2021-01-30 15:16:42 +00:00
private MeshRenderer meshRenderer;
private PlayerManager playerManager;
private bool interact = false;
2021-01-29 22:56:23 +00:00
// Start is called before the first frame update
void Start()
{
2021-01-30 15:16:42 +00:00
meshRenderer = GetComponent<MeshRenderer>();
meshRenderer.materials[1].SetFloat ("_Outline", 0.0f);
meshRenderer.materials[1].SetColor("_OutlineColor", new Color(0.5276349f, 0.5566038f, 0.118147f));
2021-01-29 22:56:23 +00:00
rigidBody = GetComponent<Rigidbody>();
}
// Update is called once per frame
void Update()
{
2021-01-30 15:16:42 +00:00
if (interact)
{
if (objectType == ObjectType.PushPull)
{
if (Input.GetKeyUp(KeyCode.E))
{
2021-01-30 16:44:13 +00:00
if (playerManager.GetPushPullObject() == null && playerManager.activeAbility.Count > 0 && playerManager.activeAbility[0] == 2)
2021-01-30 15:16:42 +00:00
{
playerManager.SetPushPullObject(this.gameObject);
meshRenderer.materials[1].SetColor("_OutlineColor", new Color(0.5568628f, 0.3785397f, 0.1176471f));
}
else
{
playerManager.RemovePushPullObject();
meshRenderer.materials[1].SetColor("_OutlineColor", new Color(0.5276349f, 0.5566038f, 0.118147f));
playerManager = null;
}
}
}
}
else
{
if (playerManager != null && playerManager.GetPushPullObject() == null)
{
meshRenderer.materials[1].SetColor("_OutlineColor", new Color(0.5276349f, 0.5566038f, 0.118147f));
}
if (Input.GetKeyUp(KeyCode.E))
{
if (playerManager != null)
{
playerManager.RemovePushPullObject();
playerManager = null;
}
}
}
}
2021-01-29 22:56:23 +00:00
2021-01-30 15:16:42 +00:00
private void OnCollisionStay(Collision collision)
{
if (collision.gameObject.tag == "Player")
{
Vector3 hit = collision.contacts[0].normal;
if (hit.x != 0 && hit.y == 0)
{
playerManager = collision.gameObject.GetComponent<PlayerManager>();
2021-01-30 16:44:13 +00:00
if (playerManager.activeAbility.Count > 0 && playerManager.activeAbility[0] == 2)
{
2021-01-30 18:02:37 +00:00
meshRenderer.materials[1].SetFloat("_Outline", 0.1f);
2021-01-30 16:44:13 +00:00
}
else
{
meshRenderer.materials[1].SetFloat("_Outline", 0.0f);
}
2021-01-30 15:16:42 +00:00
interact = true;
}
}
}
private void OnCollisionExit(Collision collision)
{
if (collision.gameObject.tag == "Player")
{
meshRenderer.materials[1].SetFloat("_Outline", 0.0f);
interact = false;
}
2021-01-29 22:56:23 +00:00
}
}