场景设计

This commit is contained in:
SoulliesOfficial
2026-01-12 03:22:16 -05:00
parent 33b1795c1f
commit d94241f36c
8645 changed files with 1242757 additions and 1039728 deletions

View File

@@ -77,12 +77,15 @@ namespace Cielonos.MainGame.Characters
return;
}
RuntimeFuncAnim currentFuncAnim = fullBodyFuncAnimSm.currentRuntimeFuncAnim;
lastFrameIntervals = currentIntervals;
currentIntervals = fullBodyFuncAnimSm.currentRuntimeFuncAnim.GetEnablingIntervals();
currentIntervals = currentFuncAnim.GetEnablingIntervals();
disruptionStatus[DisruptionType.NormalExternal] = currentIntervals.Any(interval => interval.intervalType == IntervalType.ExternalDisruption);
disruptionStatus[DisruptionType.NormalAction] = currentIntervals.Any(interval => interval.intervalType == IntervalType.ActionDisruption);
disruptionStatus[DisruptionType.Movement] = currentIntervals.Any(interval => interval.intervalType == IntervalType.MovementDisruption);
if (fullBodyFuncAnimSm.currentRuntimeFuncAnim.HasIntervalType(IntervalType.ForcedActionDisruption))
if (currentFuncAnim.HasIntervalType(IntervalType.ForcedActionDisruption))
{
disruptionStatus[DisruptionType.ForcedAction] = currentIntervals.Any(interval => interval.intervalType == IntervalType.ForcedActionDisruption);
}
@@ -90,7 +93,8 @@ namespace Cielonos.MainGame.Characters
{
disruptionStatus[DisruptionType.ForcedAction] = true;
}
if (fullBodyFuncAnimSm.currentRuntimeFuncAnim.HasIntervalType(IntervalType.ForcedExternalDisruption))
if (currentFuncAnim.HasIntervalType(IntervalType.ForcedExternalDisruption))
{
disruptionStatus[DisruptionType.ForcedExternal] = currentIntervals.Any(interval => interval.intervalType == IntervalType.ForcedExternalDisruption);
}
@@ -98,7 +102,9 @@ namespace Cielonos.MainGame.Characters
{
disruptionStatus[DisruptionType.ForcedExternal] = true;
}
isDuringRootMotion = currentIntervals.Any(interval => interval.intervalType == IntervalType.RootMotion);
isDuringRootMotion = currentFuncAnim.funcAnimData.animInfo.useRootMotion &&
currentIntervals.Any(interval => interval.intervalType == IntervalType.RootMotion);
}
}

View File

@@ -1,5 +1,6 @@
using System;
using DG.Tweening;
using SLSFramework.General;
using UnityEngine;
using UnityEngine.AI;
@@ -9,8 +10,8 @@ namespace Cielonos.MainGame.Characters
{
protected AnimationSubcontrollerBase animationSc => owner.animationSc;
protected Animator animator => animationSc.animator;
public virtual void OnAnimatorMove()
protected virtual void OnAnimatorMove()
{
if (owner.animationSc.isDuringRootMotion)
{
@@ -44,6 +45,7 @@ namespace Cielonos.MainGame.Characters
characterTransform.rotation *= originalDeltaRotation;
Vector3 originalDeltaPosition = animator.deltaPosition;
Vector3 localDeltaPosition = characterTransform.InverseTransformDirection(originalDeltaPosition);
Vector3 adjustedLocalDeltaPosition = new Vector3(localDeltaPosition.x * rootMotionMoveXMultiplier, localDeltaPosition.y,
localDeltaPosition.z * rootMotionMoveZMultiplier);