diff --git a/Unity/Assets/Convai/Art/Resources/Feminine NPC Animator.controller b/Unity/Assets/Convai/Art/Resources/Feminine NPC Animator.controller index 06a47a5..c742e10 100644 --- a/Unity/Assets/Convai/Art/Resources/Feminine NPC Animator.controller +++ b/Unity/Assets/Convai/Art/Resources/Feminine NPC Animator.controller @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a54a6a0d0e1ac74bc10417ca9c80ee3cf3686e15ab699afd4692bba09d95af19 -size 8948 +oid sha256:529cdc646af383fb786c05c1b65a225ca02fca5fa136ccbaf184ba0548f54873 +size 8893 diff --git a/Unity/Assets/Scenes/VR/VR-Task1.unity b/Unity/Assets/Scenes/VR/VR-Task1.unity index 806dcca..192f965 100644 --- a/Unity/Assets/Scenes/VR/VR-Task1.unity +++ b/Unity/Assets/Scenes/VR/VR-Task1.unity @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3fa5c573dfc1fa4f0cad1f57bda6131cffc9e003c53c6107e1b5a888da95382d -size 4638799 +oid sha256:d9c60cb2828c471b572ab60c1a38c37fe016038568f4c4b8ecd2f202e101b33b +size 4639155 diff --git a/Unity/Assets/Scripts/DisableNPCMovement.cs b/Unity/Assets/Scripts/DisableNPCMovement.cs new file mode 100644 index 0000000..d31baec --- /dev/null +++ b/Unity/Assets/Scripts/DisableNPCMovement.cs @@ -0,0 +1,93 @@ +using UnityEngine; +using UnityEngine.AI; + +/// +/// Simple script to disable NPC leg movement by disabling NavMeshAgent and preventing walking animations +/// +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(); + animator = GetComponent(); + + 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; + } + } + } + + /// + /// Call this method to toggle movement on/off + /// + public void ToggleMovement() + { + disableMovement = !disableMovement; + } + + /// + /// Call this method to enable movement + /// + public void EnableMovement() + { + disableMovement = false; + } + + /// + /// Call this method to disable movement + /// + public void DisableMovement() + { + disableMovement = true; + } +} + diff --git a/Unity/Assets/Scripts/DisableNPCMovement.cs.meta b/Unity/Assets/Scripts/DisableNPCMovement.cs.meta new file mode 100644 index 0000000..52ba4d3 --- /dev/null +++ b/Unity/Assets/Scripts/DisableNPCMovement.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 99039096af5b33b4caf21008344271d7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: