Add sign for first help

This commit is contained in:
haitem
2021-01-30 23:17:05 +01:00
parent 0d8312407a
commit 34b5565b71
7 changed files with 959 additions and 36 deletions

View File

@@ -1,21 +1,35 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class ObjectManager : MonoBehaviour
{
public enum ObjectType {Nothing, PushPull, Drag};
public enum ObjectType {Nothing, PushPull, Sign};
public ObjectType objectType = ObjectType.Nothing;
private Rigidbody rigidBody;
private MeshRenderer meshRenderer;
private PlayerManager playerManager;
private bool interact = false;
public GameObject detailSign;
// Start is called before the first frame update
void Start()
{
meshRenderer = GetComponent<MeshRenderer>();
if (objectType == ObjectType.Sign) {
MeshRenderer[] meshR = GetComponentsInChildren<MeshRenderer>();
if (meshR[0].materials[1] != null) {
meshRenderer = meshR[0];
}
else
{
meshRenderer = meshR[1];
}
}
else
{
meshRenderer = GetComponent<MeshRenderer>();
}
meshRenderer.materials[1].SetFloat ("_Outline", 0.0f);
meshRenderer.materials[1].SetColor("_OutlineColor", new Color(0.5276349f, 0.5566038f, 0.118147f));
rigidBody = GetComponent<Rigidbody>();
@@ -43,6 +57,18 @@ public class ObjectManager : MonoBehaviour
}
}
}
else if (objectType == ObjectType.Sign)
{
if (Input.GetKeyUp(KeyCode.E) && !detailSign.activeSelf)
{
detailSign.SetActive(true);
}
else if (!playerManager.onGround || Input.GetAxisRaw("Horizontal") != 0 || (Input.GetKeyUp(KeyCode.E) && detailSign.activeSelf))
{
detailSign.SetActive(false);
}
}
}
else
{
@@ -61,6 +87,28 @@ public class ObjectManager : MonoBehaviour
}
}
private void OnTriggerEnter(Collider other)
{
if (other.gameObject.tag == "Player")
{
if (objectType == ObjectType.Sign)
{
playerManager = other.gameObject.GetComponent<PlayerManager>();
meshRenderer.materials[1].SetFloat("_Outline", 2.5f);
interact = true;
}
}
}
private void OnTriggerExit(Collider other)
{
if (other.gameObject.tag == "Player")
{
meshRenderer.materials[1].SetFloat("_Outline", 0.0f);
interact = false;
}
}
private void OnCollisionStay(Collision collision)
{
if (collision.gameObject.tag == "Player")

View File

@@ -354,9 +354,9 @@ public class PlayerManager : MonoBehaviour
dubleJump = true;
dash = false;
}
powerCubeManager = other.gameObject.GetComponent<PowerCubeManager>();
if (powerCubeManager != null)
if (other.gameObject.GetComponent<PowerCubeManager>() != null)
{
powerCubeManager = other.gameObject.GetComponent<PowerCubeManager>();
interact = true;
}
}