add basic inventory, fading walls
This commit is contained in:
@@ -1,3 +1,6 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
|
||||
public class StaticCamRoom : MonoBehaviour
|
||||
@@ -7,19 +10,22 @@ public class StaticCamRoom : MonoBehaviour
|
||||
public Transform[] objectsToHide;
|
||||
public float camZoom = 5f;
|
||||
|
||||
private void RoomEnter()
|
||||
public void RoomEnter()
|
||||
{
|
||||
StopAllCoroutines();
|
||||
foreach (var obj in objectsToHide)
|
||||
{
|
||||
obj.gameObject.SetActive(false);
|
||||
StartCoroutine(FadeOutMaterial(0.5f, obj.gameObject));
|
||||
}
|
||||
}
|
||||
|
||||
private void RoomExit()
|
||||
public void RoomExit(List<Transform> wallsToKeep)
|
||||
{
|
||||
StopAllCoroutines();
|
||||
foreach (var obj in objectsToHide)
|
||||
{
|
||||
obj.gameObject.SetActive(true);
|
||||
if (!wallsToKeep.Contains(obj))
|
||||
StartCoroutine(FadeInMaterial(0.5f, obj.gameObject));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,7 +36,7 @@ private void OnTriggerEnter(Collider other)
|
||||
if (controller != null)
|
||||
{
|
||||
controller.SetCurrentPosition(camPosition.position, camZoom);
|
||||
RoomEnter();
|
||||
controller.AddToRoomsActive(this);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,7 +47,37 @@ private void OnTriggerExit(Collider other)
|
||||
if (controller != null)
|
||||
{
|
||||
controller.ReturnCameraToHome();
|
||||
RoomExit();
|
||||
controller.RemoveFromRoomsActive(this);
|
||||
}
|
||||
}
|
||||
|
||||
private IEnumerator FadeOutMaterial(float fadeSpeed, GameObject wallObj)
|
||||
{
|
||||
Renderer rend = wallObj.GetComponent<Renderer>();
|
||||
Color matColor = rend.material.color;
|
||||
if (matColor.a > 1f)
|
||||
matColor = new Color(matColor.r, matColor.g, matColor.b, 1f);
|
||||
|
||||
while (rend.material.color.a > 0f)
|
||||
{
|
||||
matColor.a -= Time.deltaTime / fadeSpeed;
|
||||
rend.material.color = matColor;
|
||||
yield return null;
|
||||
}
|
||||
rend.material.color = new Color(matColor.r, matColor.g, matColor.b, 0f);
|
||||
}
|
||||
|
||||
private IEnumerator FadeInMaterial(float fadeSpeed, GameObject wallObj)
|
||||
{
|
||||
Renderer rend = wallObj.GetComponent<Renderer>();
|
||||
Color matColor = rend.material.color;
|
||||
|
||||
while (rend.material.color.a < 1f)
|
||||
{
|
||||
matColor.a += Time.deltaTime / fadeSpeed;
|
||||
rend.material.color = matColor;
|
||||
yield return null;
|
||||
}
|
||||
rend.material.color = new Color(matColor.r, matColor.g, matColor.b, 1f);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user