removed walking animation
This commit is contained in:
BIN
Unity/Assets/Convai/Art/Resources/Feminine NPC Animator.controller
(Stored with Git LFS)
BIN
Unity/Assets/Convai/Art/Resources/Feminine NPC Animator.controller
(Stored with Git LFS)
Binary file not shown.
BIN
Unity/Assets/Scenes/VR/VR-Task1.unity
(Stored with Git LFS)
BIN
Unity/Assets/Scenes/VR/VR-Task1.unity
(Stored with Git LFS)
Binary file not shown.
93
Unity/Assets/Scripts/DisableNPCMovement.cs
Normal file
93
Unity/Assets/Scripts/DisableNPCMovement.cs
Normal file
@ -0,0 +1,93 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
11
Unity/Assets/Scripts/DisableNPCMovement.cs.meta
Normal file
11
Unity/Assets/Scripts/DisableNPCMovement.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 99039096af5b33b4caf21008344271d7
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user