Added Node camera transitions

Fixed Conveyor speedup issue
This commit is contained in:
Jan Groß
2021-06-12 15:28:07 +02:00
parent 4ad82fe684
commit 759cf0a383
10 changed files with 228 additions and 32 deletions

View File

@@ -1,6 +1,7 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;
public class GameManager : MonoBehaviour
{
@@ -8,18 +9,20 @@ public class GameManager : MonoBehaviour
public GameObject player;
public Camera[] cameras;
public GameObject networkCamera;
public GameObject activeNode;
// Start is called before the first frame update
void Start()
{
}
public void SetActiveCamera(int cam)
{
for (int i = 0; i < cameras.Length; i++)
{
if (i==cam) {
if (i == cam)
{
}
cameras[i].enabled = (i == cam);
@@ -29,6 +32,17 @@ public class GameManager : MonoBehaviour
// Update is called once per frame
void Update()
{
}
private void FixedUpdate()
{
if (Keyboard.current.xKey.wasPressedThisFrame)
{
SetActiveCamera(0);
activeNode.GetComponent<Node>().DisableNode();
activeNode = null;
}
}
}

View File

@@ -19,7 +19,11 @@ public class Conveyer : MonoBehaviour
foreach (ContactPoint contact in collision.contacts)
{
//Debug.Log(string.Format("Current Collider: {0} Position {1}", contact.otherCollider.name, contact.otherCollider.transform.position.magnitude));
contact.otherCollider.GetComponent<Rigidbody>().AddForce(transform.forward * (conveyerSpeed * direction), ForceMode.Acceleration);
if(contact.otherCollider.GetComponent<Rigidbody>().velocity.magnitude < conveyerSpeed)
{
contact.otherCollider.GetComponent<Rigidbody>().AddForce(transform.forward * (conveyerSpeed * direction), ForceMode.Acceleration);
}
}
}
}

View File

@@ -0,0 +1,21 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NetworkCamera : MonoBehaviour
{
public Vector3 targetPosition;
public float lerpSpeed = 2;
// Start is called before the first frame update
void Start()
{
targetPosition = transform.position;
}
// Update is called once per frame
void Update()
{
transform.position = Vector3.Lerp(transform.position, targetPosition, Time.deltaTime * lerpSpeed);
}
}

View File

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

View File

@@ -27,9 +27,16 @@ public class Node : MonoBehaviour
{
if (isActive) { return; }
Debug.Log(string.Format("{0} became active node", gameObject.name));
isActive = true;
UI.SetActive(true);
gameManager.networkCamera.transform.position = new Vector3(transform.position.x, gameManager.networkCamera.transform.position.y, transform.position.z);
gameManager.activeNode = this.gameObject;
gameManager.networkCamera.GetComponent<NetworkCamera>().targetPosition = new Vector3(transform.position.x, gameManager.networkCamera.transform.position.y, transform.position.z);
isActive = true;
}
public void DisableNode()
{
UI.SetActive(false);
isActive = false;
}
public void MoveToDirection(Direction dir)
@@ -38,8 +45,7 @@ public class Node : MonoBehaviour
if (nodeComp)
{
nodeComp.SetActiveNode();
UI.SetActive(false);
isActive = false;
DisableNode();
} else
{
connections[(int)dir].SendMessage("InteractNode");

View File

@@ -30,7 +30,7 @@ public class Switch : MonoBehaviour
{
if (Vector3.Distance(transform.position, gameManager.player.transform.position) < interactionDistance) {
//Debug.Log("Switch is visible and in range");
if (Keyboard.current.eKey.wasPressedThisFrame)
if (Keyboard.current.eKey.wasPressedThisFrame && !gameManager.activeNode)
{
gameManager.SetActiveCamera(1);
debugNode.SendMessage("SetActiveNode", debugNode.GetComponent<Node>());