Remove DisableNPCMovement script
This commit is contained in:
@ -1,93 +0,0 @@
|
|||||||
using UnityEngine;
|
|
||||||
using UnityEngine.AI;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Simple script to disable NPC leg movement by disabling NavMeshAgent and preventing walking animations
|
|
||||||
/// </summary>
|
|
||||||
public class DisableNPCMovement : MonoBehaviour
|
|
||||||
{
|
|
||||||
[Header("Movement Control")]
|
|
||||||
[Tooltip("If enabled, NPC will not be able to move (legs will stay still)")]
|
|
||||||
public bool disableMovement = true;
|
|
||||||
|
|
||||||
private NavMeshAgent navMeshAgent;
|
|
||||||
private Animator animator;
|
|
||||||
private bool wasNavMeshEnabled;
|
|
||||||
private float originalSpeed;
|
|
||||||
|
|
||||||
private void Start()
|
|
||||||
{
|
|
||||||
navMeshAgent = GetComponent<NavMeshAgent>();
|
|
||||||
animator = GetComponent<Animator>();
|
|
||||||
|
|
||||||
if (navMeshAgent != null)
|
|
||||||
{
|
|
||||||
wasNavMeshEnabled = navMeshAgent.enabled;
|
|
||||||
originalSpeed = navMeshAgent.speed;
|
|
||||||
}
|
|
||||||
|
|
||||||
UpdateMovementState();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Update()
|
|
||||||
{
|
|
||||||
UpdateMovementState();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void UpdateMovementState()
|
|
||||||
{
|
|
||||||
if (disableMovement)
|
|
||||||
{
|
|
||||||
// Disable NavMeshAgent to prevent movement
|
|
||||||
if (navMeshAgent != null && navMeshAgent.enabled)
|
|
||||||
{
|
|
||||||
navMeshAgent.enabled = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Force idle animation to prevent walking
|
|
||||||
if (animator != null)
|
|
||||||
{
|
|
||||||
// Check if currently playing walking animation
|
|
||||||
AnimatorStateInfo stateInfo = animator.GetCurrentAnimatorStateInfo(0);
|
|
||||||
if (stateInfo.IsName("Walking") || animator.GetBool("Walking"))
|
|
||||||
{
|
|
||||||
animator.CrossFade("Idle", 0.1f);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Re-enable NavMeshAgent if it was previously enabled
|
|
||||||
if (navMeshAgent != null && wasNavMeshEnabled)
|
|
||||||
{
|
|
||||||
navMeshAgent.enabled = true;
|
|
||||||
navMeshAgent.speed = originalSpeed;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Call this method to toggle movement on/off
|
|
||||||
/// </summary>
|
|
||||||
public void ToggleMovement()
|
|
||||||
{
|
|
||||||
disableMovement = !disableMovement;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Call this method to enable movement
|
|
||||||
/// </summary>
|
|
||||||
public void EnableMovement()
|
|
||||||
{
|
|
||||||
disableMovement = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Call this method to disable movement
|
|
||||||
/// </summary>
|
|
||||||
public void DisableMovement()
|
|
||||||
{
|
|
||||||
disableMovement = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@ -1,11 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 99039096af5b33b4caf21008344271d7
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
Reference in New Issue
Block a user