@@ -4347,6 +4347,7 @@ GameObject:
|
|||||||
- component: {fileID: 750131492}
|
- component: {fileID: 750131492}
|
||||||
- component: {fileID: 750131491}
|
- component: {fileID: 750131491}
|
||||||
- component: {fileID: 750131493}
|
- component: {fileID: 750131493}
|
||||||
|
- component: {fileID: 750131494}
|
||||||
m_Layer: 0
|
m_Layer: 0
|
||||||
m_Name: CinemachineCamera
|
m_Name: CinemachineCamera
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
@@ -4432,6 +4433,18 @@ MonoBehaviour:
|
|||||||
RotationDamping: {x: 0, y: 0, z: 0}
|
RotationDamping: {x: 0, y: 0, z: 0}
|
||||||
QuaternionDamping: 1
|
QuaternionDamping: 1
|
||||||
FollowOffset: {x: 0, y: 0, z: -10}
|
FollowOffset: {x: 0, y: 0, z: -10}
|
||||||
|
--- !u!114 &750131494
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 750131489}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: f0a87a1c7758eb34587daa15a89d59d4, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Assembly-CSharp::DownwardCamera
|
||||||
--- !u!1001 &751558359
|
--- !u!1001 &751558359
|
||||||
PrefabInstance:
|
PrefabInstance:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|||||||
@@ -0,0 +1,43 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
using Unity.Cinemachine;
|
||||||
|
|
||||||
|
public class DownwardCamera : CinemachineExtension
|
||||||
|
{
|
||||||
|
private float minY;
|
||||||
|
private bool isInitialized = false;
|
||||||
|
|
||||||
|
protected override void PostPipelineStageCallback(
|
||||||
|
CinemachineVirtualCameraBase vcam,
|
||||||
|
CinemachineCore.Stage stage,
|
||||||
|
ref CameraState state,
|
||||||
|
float deltaTime)
|
||||||
|
{
|
||||||
|
if (stage == CinemachineCore.Stage.Body)
|
||||||
|
{
|
||||||
|
Vector3 pos = state.RawPosition;
|
||||||
|
|
||||||
|
if (!isInitialized)
|
||||||
|
{
|
||||||
|
minY = pos.y;
|
||||||
|
isInitialized = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pos.y < minY)
|
||||||
|
{
|
||||||
|
minY = pos.y;
|
||||||
|
}
|
||||||
|
// If it tries to move UP (higher Y), lock it to the lowest point we've reached
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pos.y = minY;
|
||||||
|
}
|
||||||
|
|
||||||
|
state.RawPosition = pos;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ResetCamera()
|
||||||
|
{
|
||||||
|
isInitialized = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f0a87a1c7758eb34587daa15a89d59d4
|
||||||
Reference in New Issue
Block a user