movement no longer uses mouse, fix room cam bug, larger shovel hitbox

This commit is contained in:
2026-02-19 20:08:58 -06:00
parent d2408dabd3
commit 08095945bc
4 changed files with 57 additions and 28 deletions
+1 -1
View File
@@ -2579,7 +2579,7 @@ SphereCollider:
m_ProvidesContacts: 0
m_Enabled: 0
serializedVersion: 3
m_Radius: 0.35
m_Radius: 0.78
m_Center: {x: 0, y: -0.5, z: 0}
--- !u!114 &666997941
MonoBehaviour:
+26
View File
@@ -1,5 +1,6 @@
using System.Collections.Generic;
using System.Linq;
using Unity.VisualScripting;
using UnityEngine;
public class CameraController : MonoBehaviour
@@ -19,12 +20,16 @@ public class CameraController : MonoBehaviour
private Vector3 currentCamPosition;
private float desiredCamSize;
private int positionsSet = 0; // this keeps track of how many cam zones we're in
private float timeReturningHome = 0; // how long has the cam been moving home
private List<StaticCamRoom> roomsActive;
public void SetCurrentPosition(Vector3 currentCamPosition, float desiredCamSize)
{
positionsSet++; // we have entered a cam zone
if (currentCamPosition != this.currentCamPosition)
{
cameraObj.transform.parent = null;
float distanceToMove = Vector3.Distance(this.currentCamPosition, currentCamPosition);
@@ -38,6 +43,7 @@ public void SetCurrentPosition(Vector3 currentCamPosition, float desiredCamSize)
this.currentCamPosition = currentCamPosition;
this.desiredCamSize = desiredCamSize;
}
}
public void ReturnCameraToHome()
{
@@ -59,6 +65,11 @@ public void ReturnCameraToHome()
currentCamPosition = playerCamHome.position;
desiredCamSize = baseCamSize;
}
else
{
positionsSet--;
SetCurrentPosition(roomsActive[roomsActive.Count - 1].camPosition.position, roomsActive[roomsActive.Count - 1].camZoom);
}
}
public void AddToRoomsActive(StaticCamRoom room)
@@ -100,8 +111,17 @@ void Update()
{
currentCamPosition = playerCamHome.position;
// Speed up cam if we've been returning home longer than a certain amount
if (timeReturningHome > 1.0f)
{
cameraObj.transform.position = Vector3.MoveTowards(cameraObj.transform.position, currentCamPosition, Time.deltaTime * moveSpeed * 1.5f);
cameraComponent.orthographicSize = Mathf.MoveTowards(cameraComponent.orthographicSize, desiredCamSize, Time.deltaTime * zoomSpeed * 1.5f);
}
else
{
cameraObj.transform.position = Vector3.MoveTowards(cameraObj.transform.position, currentCamPosition, Time.deltaTime * moveSpeed);
cameraComponent.orthographicSize = Mathf.MoveTowards(cameraComponent.orthographicSize, desiredCamSize, Time.deltaTime * zoomSpeed);
}
if (Vector3.Distance(cameraObj.transform.position, currentCamPosition) < 0.1f)
{
@@ -110,6 +130,12 @@ void Update()
cameraComponent.orthographicSize = baseCamSize;
returningHome = false;
}
timeReturningHome += Time.deltaTime;
}
else
{
timeReturningHome = 0;
}
}
}
+13 -10
View File
@@ -36,21 +36,24 @@ void Update()
void Walk()
{
moveDir = Vector3.zero;
if (!characterController.isGrounded)
{
moveDir.y -= gravity * Time.deltaTime;
}
float verticalMovement = 0;
float horizontalMovement = 0;
if (!isDigging)
{
Vector3 verticalMovement = DougBody.transform.forward * Input.GetAxis("Vertical") * walkSpeed * Time.deltaTime;
Vector3 horizontalMovement = DougBody.transform.right * Input.GetAxis("Horizontal") * walkSpeed * Time.deltaTime;
moveDir += verticalMovement + horizontalMovement;
verticalMovement = Input.GetAxisRaw("Vertical");
horizontalMovement = Input.GetAxisRaw("Horizontal");
}
characterController.Move(moveDir);
moveDir = new Vector3(horizontalMovement, 0, verticalMovement).normalized;
moveDir *= walkSpeed;
if (!characterController.isGrounded)
{
moveDir.y = -gravity;
}
characterController.Move(moveDir * Time.deltaTime);
}
void DigDetector()
+2 -2
View File
@@ -35,8 +35,8 @@ private void OnTriggerEnter(Collider other)
if (controller != null)
{
controller.SetCurrentPosition(camPosition.position, camZoom);
controller.AddToRoomsActive(this);
controller.SetCurrentPosition(camPosition.position, camZoom);
}
}
@@ -46,8 +46,8 @@ private void OnTriggerExit(Collider other)
if (controller != null)
{
controller.ReturnCameraToHome();
controller.RemoveFromRoomsActive(this);
controller.ReturnCameraToHome();
}
}