diff --git a/Assets/Scripts/ArmEquipmentSystem.cs b/Assets/Scripts/ArmEquipmentSystem.cs new file mode 100644 index 00000000..ab47f7ac --- /dev/null +++ b/Assets/Scripts/ArmEquipmentSystem.cs @@ -0,0 +1,461 @@ +using UnityEngine; + +public enum ArmState +{ + Environmental, + TransitionToEquipped, + Equipped, + TransitionToEnvironmental +} + +[System.Serializable] +public class ArmEquipment +{ + [Header("Arm References")] + public OctoIkLimb IkLimb; + public Transform HandSocket; + + [Header("Bone References (for procedural animation)")] + [Tooltip("Shoulder bone (optional)")] + public Transform ShoulderBone; + + [Tooltip("Elbow bone (optional)")] + public Transform ElbowBone; + + [Tooltip("Wrist bone (required for rotation)")] + public Transform WristBone; + + [Header("Equipped Pose Settings")] + [Tooltip("Rotation to apply to shoulder when equipped")] + public Vector3 ShoulderRotationOffset = Vector3.zero; + + [Tooltip("Rotation to apply to elbow when equipped")] + public Vector3 ElbowRotationOffset = Vector3.zero; + + [Tooltip("Rotation to apply to wrist when equipped")] + public Vector3 WristRotationOffset = new Vector3(0, 0, 90); + + [Tooltip("Speed of rotation lerp")] + [Range(1f, 20f)] + public float RotationSpeed = 10f; + + [Tooltip("Duration of IK blend after unequip transition")] + [Range(0.1f, 1f)] + public float IkBlendDuration = 0.3f; + + [Header("Transition Settings")] + [Tooltip("Position offset where arm exits camera view")] + public Vector3 TransitionOffset = new Vector3(0.5f, -0.3f, 0.2f); + + [Tooltip("Duration for arm to move out of view")] + public float TransitionOutDuration = 0.3f; + + [Tooltip("Duration for arm to return to view")] + public float TransitionInDuration = 0.3f; + + [Tooltip("Curve for transition movement")] + public AnimationCurve TransitionCurve = AnimationCurve.EaseInOut(0, 0, 1, 1); + + [Header("Tap Animation")] + [Tooltip("Elbow rotation during windup (degrees)")] + public float TapWindupRotation = 15f; + + [Tooltip("Duration of windup (pull back)")] + public float TapWindupDuration = 0.1f; + + [Tooltip("Duration of strike (forward snap)")] + public float TapStrikeDuration = 0.05f; + + [Tooltip("Wrist snap rotation during strike (degrees)")] + public float TapWristSnapRotation = 10f; + + [Tooltip("Shake intensity during vibration")] + public float ShakeIntensity = 2f; + + [Tooltip("Shake speed (frequency)")] + public float ShakeSpeed = 30f; + + [HideInInspector] public ArmState State = ArmState.Environmental; + [HideInInspector] public Vector3 OriginalTargetPosition; + [HideInInspector] public Quaternion OriginalTargetRotation; + [HideInInspector] public GameObject EquippedObject; + [HideInInspector] public float IkWeight = 1f; + + [HideInInspector] public Quaternion OriginalShoulderRotation; + [HideInInspector] public Quaternion OriginalElbowRotation; + [HideInInspector] public Quaternion OriginalWristRotation; + + private int _transitionTweenId = -1; + private int _ikWeightTweenId = -1; + private int _ikBlendTweenId = -1; + private bool _isBlendingToIk = false; + + private int _tapTweenId = -1; + private bool _isShaking = false; + + private Quaternion _transitionStartShoulder; + private Quaternion _transitionStartElbow; + private Quaternion _transitionStartWrist; + + public void Initialize() + { + if (IkLimb != null && IkLimb.Target != null) + { + OriginalTargetPosition = IkLimb.Target.localPosition; + OriginalTargetRotation = IkLimb.Target.localRotation; + } + + if (ShoulderBone != null) + OriginalShoulderRotation = ShoulderBone.localRotation; + + if (ElbowBone != null) + OriginalElbowRotation = ElbowBone.localRotation; + + if (WristBone != null) + OriginalWristRotation = WristBone.localRotation; + + State = ArmState.Environmental; + IkWeight = 1f; + } + + public void StartTransitionToEquipped(GameObject objectToEquip, System.Action onTransitionComplete) + { + if (State != ArmState.Environmental) + return; + + State = ArmState.TransitionToEquipped; + EquippedObject = objectToEquip; + + CancelActiveTweens(); + + if (IkLimb == null || IkLimb.Target == null) + { + CompleteEquip(onTransitionComplete); + return; + } + + Vector3 transitionTarget = OriginalTargetPosition + TransitionOffset; + + _transitionTweenId = LeanTween.value(IkLimb.gameObject, 0f, 1f, TransitionOutDuration) + .setEase(TransitionCurve) + .setOnUpdate((float t) => { + if (IkLimb != null && IkLimb.Target != null) + { + IkLimb.Target.localPosition = Vector3.Lerp(IkLimb.Target.localPosition, transitionTarget, t); + } + }) + .setOnComplete(() => { + _transitionTweenId = -1; + CompleteEquip(onTransitionComplete); + }).id; + + _ikWeightTweenId = LeanTween.value(IkLimb.gameObject, IkWeight, 0f, TransitionOutDuration * 0.5f) + .setOnUpdate((float val) => { + IkWeight = val; + }) + .setOnComplete(() => { + _ikWeightTweenId = -1; + }).id; + } + + private void CompleteEquip(System.Action onComplete) + { + State = ArmState.Equipped; + + if (IkLimb != null) + { + IkLimb.enabled = false; + } + + if (EquippedObject != null && HandSocket != null) + { + EquippedObject.transform.SetParent(HandSocket, false); + EquippedObject.transform.localPosition = Vector3.zero; + EquippedObject.transform.localRotation = Quaternion.identity; + } + + onComplete?.Invoke(); + } + + public void UpdateEquippedPose() + { + if (State != ArmState.Equipped && !_isBlendingToIk) + return; + + if (_isShaking) + { + UpdateShake(); + return; + } + + if (State == ArmState.Equipped) + { + float deltaTime = UnityEngine.Time.deltaTime; + float lerpSpeed = 1f - Mathf.Exp(-RotationSpeed * deltaTime); + + if (ShoulderBone != null) + { + Quaternion targetRot = OriginalShoulderRotation * Quaternion.Euler(ShoulderRotationOffset); + ShoulderBone.localRotation = Quaternion.Slerp(ShoulderBone.localRotation, targetRot, lerpSpeed); + } + + if (ElbowBone != null) + { + Quaternion targetRot = OriginalElbowRotation * Quaternion.Euler(ElbowRotationOffset); + ElbowBone.localRotation = Quaternion.Slerp(ElbowBone.localRotation, targetRot, lerpSpeed); + } + + if (WristBone != null) + { + Quaternion targetRot = OriginalWristRotation * Quaternion.Euler(WristRotationOffset); + WristBone.localRotation = Quaternion.Slerp(WristBone.localRotation, targetRot, lerpSpeed); + } + } + } + + public void StartTransitionToEnvironmental(System.Action onTransitionComplete) + { + if (State != ArmState.Equipped) + return; + + State = ArmState.TransitionToEnvironmental; + + CancelActiveTweens(); + + _transitionStartShoulder = ShoulderBone != null ? ShoulderBone.localRotation : Quaternion.identity; + _transitionStartElbow = ElbowBone != null ? ElbowBone.localRotation : Quaternion.identity; + _transitionStartWrist = WristBone != null ? WristBone.localRotation : Quaternion.identity; + + if (IkLimb == null || IkLimb.Target == null) + { + CompleteUnequip(onTransitionComplete); + return; + } + + Vector3 currentPosition = IkLimb.Target.localPosition; + Vector3 transitionTarget = OriginalTargetPosition + TransitionOffset; + + _ikWeightTweenId = LeanTween.value(IkLimb.gameObject, IkWeight, 0f, TransitionInDuration * 0.5f) + .setOnUpdate((float val) => { + IkWeight = val; + }) + .setOnComplete(() => { + _ikWeightTweenId = -1; + }).id; + + _transitionTweenId = LeanTween.value(IkLimb.gameObject, 0f, 1f, TransitionInDuration) + .setEase(TransitionCurve) + .setOnUpdate((float t) => { + if (IkLimb != null && IkLimb.Target != null) + { + IkLimb.Target.localPosition = Vector3.Lerp(currentPosition, transitionTarget, t); + } + + if (ShoulderBone != null) + ShoulderBone.localRotation = Quaternion.Slerp(_transitionStartShoulder, OriginalShoulderRotation, t); + + if (ElbowBone != null) + ElbowBone.localRotation = Quaternion.Slerp(_transitionStartElbow, OriginalElbowRotation, t); + + if (WristBone != null) + WristBone.localRotation = Quaternion.Slerp(_transitionStartWrist, OriginalWristRotation, t); + }) + .setOnComplete(() => { + _transitionTweenId = -1; + StartIkBlend(onTransitionComplete); + }).id; + } + + private void StartIkBlend(System.Action onTransitionComplete) + { + if (IkLimb != null) + { + IkLimb.enabled = true; + } + + if (EquippedObject != null) + { + if (HandSocket != null) + EquippedObject.transform.SetParent(null); + + UnityEngine.Object.Destroy(EquippedObject); + EquippedObject = null; + } + + _isBlendingToIk = true; + + Quaternion startShoulder = ShoulderBone != null ? ShoulderBone.localRotation : Quaternion.identity; + Quaternion startElbow = ElbowBone != null ? ElbowBone.localRotation : Quaternion.identity; + Quaternion startWrist = WristBone != null ? WristBone.localRotation : Quaternion.identity; + Vector3 startTargetPos = IkLimb != null && IkLimb.Target != null ? IkLimb.Target.localPosition : Vector3.zero; + Quaternion startTargetRot = IkLimb != null && IkLimb.Target != null ? IkLimb.Target.localRotation : Quaternion.identity; + + if (IkLimb != null && IkLimb.gameObject != null) + { + _ikBlendTweenId = LeanTween.value(IkLimb.gameObject, 0f, 1f, IkBlendDuration) + .setEase(LeanTweenType.easeOutQuad) + .setOnUpdate((float t) => { + if (ShoulderBone != null) + ShoulderBone.localRotation = Quaternion.Slerp(startShoulder, OriginalShoulderRotation, t); + + if (ElbowBone != null) + ElbowBone.localRotation = Quaternion.Slerp(startElbow, OriginalElbowRotation, t); + + if (WristBone != null) + WristBone.localRotation = Quaternion.Slerp(startWrist, OriginalWristRotation, t); + + if (IkLimb != null && IkLimb.Target != null) + { + IkLimb.Target.localPosition = Vector3.Lerp(startTargetPos, OriginalTargetPosition, t); + IkLimb.Target.localRotation = Quaternion.Slerp(startTargetRot, OriginalTargetRotation, t); + } + + IkWeight = t; + }) + .setOnComplete(() => { + _ikBlendTweenId = -1; + CompleteUnequip(onTransitionComplete); + }).id; + } + else + { + CompleteUnequip(onTransitionComplete); + } + } + + private void CompleteUnequip(System.Action onComplete) + { + State = ArmState.Environmental; + _isBlendingToIk = false; + + if (IkLimb != null && IkLimb.Target != null) + { + IkLimb.Target.localPosition = OriginalTargetPosition; + IkLimb.Target.localRotation = OriginalTargetRotation; + } + + if (ShoulderBone != null) + ShoulderBone.localRotation = OriginalShoulderRotation; + + if (ElbowBone != null) + ElbowBone.localRotation = OriginalElbowRotation; + + if (WristBone != null) + WristBone.localRotation = OriginalWristRotation; + + onComplete?.Invoke(); + } + + public void CancelActiveTweens() + { + if (_transitionTweenId != -1) + { + LeanTween.cancel(_transitionTweenId); + _transitionTweenId = -1; + } + + if (_ikWeightTweenId != -1) + { + LeanTween.cancel(_ikWeightTweenId); + _ikWeightTweenId = -1; + } + + if (_ikBlendTweenId != -1) + { + LeanTween.cancel(_ikBlendTweenId); + _ikBlendTweenId = -1; + } + + if (_tapTweenId != -1) + { + LeanTween.cancel(_tapTweenId); + _tapTweenId = -1; + } + + _isBlendingToIk = false; + _isShaking = false; + } + + public void PlayTapAnimation() + { + if (State != ArmState.Equipped) + return; + + if (_tapTweenId != -1) + { + LeanTween.cancel(_tapTweenId); + } + + Quaternion elbowStart = ElbowBone != null ? ElbowBone.localRotation : Quaternion.identity; + Quaternion wristStart = WristBone != null ? WristBone.localRotation : Quaternion.identity; + + Quaternion elbowWindup = elbowStart * Quaternion.Euler(0, 0, -TapWindupRotation); + Quaternion elbowStrike = elbowStart * Quaternion.Euler(0, 0, TapWindupRotation * 0.3f); + + Quaternion wristWindup = wristStart; + Quaternion wristStrike = wristStart * Quaternion.Euler(0, 0, -TapWristSnapRotation); + + _tapTweenId = LeanTween.value(IkLimb.gameObject, 0f, 1f, TapWindupDuration) + .setOnUpdate((float t) => { + if (ElbowBone != null) + { + ElbowBone.localRotation = Quaternion.Slerp(elbowStart, elbowWindup, t); + } + if (WristBone != null) + { + WristBone.localRotation = Quaternion.Slerp(wristStart, wristWindup, t); + } + }) + .setOnComplete(() => { + _tapTweenId = LeanTween.value(IkLimb.gameObject, 0f, 1f, TapStrikeDuration) + .setOnUpdate((float t) => { + if (ElbowBone != null) + { + ElbowBone.localRotation = Quaternion.Slerp(elbowWindup, elbowStrike, t); + } + if (WristBone != null) + { + WristBone.localRotation = Quaternion.Slerp(wristWindup, wristStrike, t); + } + }) + .setOnComplete(() => { + _tapTweenId = LeanTween.value(IkLimb.gameObject, 0f, 1f, 0.1f) + .setOnUpdate((float t) => { + if (ElbowBone != null) + { + ElbowBone.localRotation = Quaternion.Slerp(elbowStrike, elbowStart, t); + } + if (WristBone != null) + { + WristBone.localRotation = Quaternion.Slerp(wristStrike, wristStart, t); + } + }) + .setOnComplete(() => { + _tapTweenId = -1; + }).id; + }).id; + }).id; + } + + public void StartShake() + { + _isShaking = true; + } + + public void StopShake() + { + _isShaking = false; + } + + public void UpdateShake() + { + if (!_isShaking || State != ArmState.Equipped || WristBone == null) + return; + + float shake = Mathf.Sin(UnityEngine.Time.time * ShakeSpeed) * ShakeIntensity; + Quaternion shakeRotation = Quaternion.Euler(shake, shake * 0.5f, 0); + + Quaternion targetRot = OriginalWristRotation * Quaternion.Euler(WristRotationOffset) * shakeRotation; + WristBone.localRotation = targetRot; + } +} diff --git a/Assets/Scripts/ArmEquipmentSystem.cs.meta b/Assets/Scripts/ArmEquipmentSystem.cs.meta new file mode 100644 index 00000000..bb5a1804 --- /dev/null +++ b/Assets/Scripts/ArmEquipmentSystem.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 80d59ec0ac09852429c56ca6c42464c2 \ No newline at end of file diff --git a/Assets/Scripts/DiapasonEquipmentManager.cs b/Assets/Scripts/DiapasonEquipmentManager.cs new file mode 100644 index 00000000..e3a2cea4 --- /dev/null +++ b/Assets/Scripts/DiapasonEquipmentManager.cs @@ -0,0 +1,357 @@ +using UnityEngine; +using UnityEngine.InputSystem; +using Unheimlich.Audio; +using System; +using System.Collections; + +public class DiapasonEquipmentManager : MonoBehaviour +{ + [Header("References")] + [SerializeField] private OctoIkArmsImproved _armsSystem; + [SerializeField] private GameObject _diapasonPrefab; + [SerializeField] private int _equipmentArmIndex = 1; + + [Header("Detection Settings")] + [SerializeField] private LayerMask _soundEmitterLayer; + [SerializeField] private float _detectionRadius = 0.15f; + [SerializeField] private Transform[] _detectionPoints; + + [Header("Visual Feedback")] + [SerializeField] private GameObject _contactFeedbackPrefab; + + [Header("Diapason Animation")] + [SerializeField] private string _vibratingBoolParam = "IsVibrating"; + [SerializeField] private string _tapTriggerParam = "Tap"; + + [Header("Tap Settings")] + [SerializeField] private AudioClip _tapSound; + [SerializeField] [Range(0f, 1f)] private float _tapVolume = 1f; + [SerializeField] private float _vibrationDuration = 15f; + + public bool IsEquipped => _isEquipped; + public AudioListenable CurrentDetectedEmitter => _currentDetectedEmitter; + public bool CanTap => _isEquipped && _currentDetectedEmitter != null && !_isVibrating && !_currentDetectedEmitter.HasBeenTapped; + + public event Action OnEmitterDetected; + public event Action OnEmitterLost; + + private GameObject _spawnedDiapason; + private bool _isEquipped = false; + private AudioListenable _currentDetectedEmitter; + private GameObject _contactFeedback; + private bool _isVibrating = false; + private AudioSource _audioSource; + private Coroutine _vibrationCoroutine; + private Animator _diapasonAnimator; + private ParticleSystem _diapasonParticles; + + void Awake() + { + if (_armsSystem == null) + { + _armsSystem = GetComponent(); + if (_armsSystem == null) + { + Debug.LogError("[DiapasonEquipment] OctoIkArmsImproved not found!"); + } + } + + _audioSource = GetComponent(); + if (_audioSource == null) + { + _audioSource = gameObject.AddComponent(); + } + } + + void Update() + { + if (_isEquipped && _armsSystem.GetArmState(_equipmentArmIndex) == ArmState.Equipped) + { + CheckForSoundEmitters(); + + if (Mouse.current != null && Mouse.current.leftButton.wasPressedThisFrame) + { + if (CanTap) + { + TapDiapason(); + } + } + } + } + + public void EquipDiapason() + { + if (_isEquipped) + { + Debug.LogWarning("[DiapasonEquipment] Diapason already equipped!"); + return; + } + + if (_diapasonPrefab == null) + { + Debug.LogError("[DiapasonEquipment] Diapason prefab not assigned!"); + return; + } + + _spawnedDiapason = Instantiate(_diapasonPrefab); + _spawnedDiapason.SetActive(true); + + _diapasonAnimator = _spawnedDiapason.GetComponentInChildren(true); + if (_diapasonAnimator == null) + { + Debug.LogWarning("[DiapasonEquipment] No Animator found on spawned diapason"); + } + else + { + _diapasonAnimator.enabled = false; + } + + _diapasonParticles = _spawnedDiapason.GetComponentInChildren(true); + if (_diapasonParticles == null) + { + Debug.LogWarning("[DiapasonEquipment] No ParticleSystem found on spawned diapason"); + } + + _armsSystem.EquipObjectOnArm(_equipmentArmIndex, _spawnedDiapason, () => { + _isEquipped = true; + OnDiapasonEquipped(); + }); + } + + public void UnequipDiapason() + { + if (!_isEquipped) + { + Debug.LogWarning("[DiapasonEquipment] Diapason not equipped!"); + return; + } + + if (_vibrationCoroutine != null) + { + StopCoroutine(_vibrationCoroutine); + _vibrationCoroutine = null; + } + + if (_currentDetectedEmitter != null) + { + _currentDetectedEmitter.SetConcentrating(false); + _currentDetectedEmitter.StopListening(cancelConcentrationFade: false); + _currentDetectedEmitter = null; + } + + _armsSystem.UnequipObjectFromArm(_equipmentArmIndex, () => { + _isEquipped = false; + _spawnedDiapason = null; + OnDiapasonUnequipped(); + }); + } + + private void CheckForSoundEmitters() + { + if (_detectionPoints == null || _detectionPoints.Length == 0) + return; + + AudioListenable closestEmitter = null; + float closestDistance = float.MaxValue; + + foreach (Transform detectionPoint in _detectionPoints) + { + if (detectionPoint == null) + continue; + + Collider[] hits = Physics.OverlapSphere(detectionPoint.position, _detectionRadius, _soundEmitterLayer); + + foreach (Collider hit in hits) + { + AudioListenable emitter = hit.GetComponent(); + + if (emitter != null) + { + float distance = Vector3.Distance(detectionPoint.position, hit.transform.position); + + if (distance < closestDistance) + { + closestDistance = distance; + closestEmitter = emitter; + } + } + } + } + + if (closestEmitter != _currentDetectedEmitter) + { + if (_currentDetectedEmitter != null) + { + OnEmitterExited(_currentDetectedEmitter); + } + + _currentDetectedEmitter = closestEmitter; + + if (_currentDetectedEmitter != null) + { + OnEmitterEntered(_currentDetectedEmitter); + } + } + } + + private void OnDiapasonEquipped() + { + if (_diapasonAnimator != null) + { + _diapasonAnimator.enabled = true; + _diapasonAnimator.SetBool(_vibratingBoolParam, false); + } + + if (_diapasonParticles != null) + { + _diapasonParticles.Stop(); + var emission = _diapasonParticles.emission; + emission.enabled = false; + } + } + + private void OnDiapasonUnequipped() + { + _isVibrating = false; + _diapasonAnimator = null; + _diapasonParticles = null; + } + + public void TapDiapason() + { + if (!CanTap) + { + Debug.LogWarning("[DiapasonEquipment] Cannot tap: not equipped, no contact, or already tapped"); + return; + } + + ArmEquipment equipment = _armsSystem.GetArmEquipment(_equipmentArmIndex); + if (equipment != null) + { + equipment.PlayTapAnimation(); + equipment.StartShake(); + } + + if (_tapSound != null && _audioSource != null) + { + _audioSource.PlayOneShot(_tapSound, _tapVolume); + } + + if (_diapasonAnimator != null) + { + _diapasonAnimator.SetTrigger(_tapTriggerParam); + _diapasonAnimator.SetBool(_vibratingBoolParam, true); + } + + if (_diapasonParticles != null) + { + var emission = _diapasonParticles.emission; + emission.enabled = true; + _diapasonParticles.Play(); + } + + _isVibrating = true; + + if (_currentDetectedEmitter != null) + { + _currentDetectedEmitter.StartListening(transform.position); + } + + if (_vibrationCoroutine != null) + StopCoroutine(_vibrationCoroutine); + _vibrationCoroutine = StartCoroutine(StopVibrationAfterDuration()); + } + + private IEnumerator StopVibrationAfterDuration() + { + yield return new WaitForSeconds(_vibrationDuration); + + if (_diapasonAnimator != null) + { + _diapasonAnimator.SetBool(_vibratingBoolParam, false); + } + + if (_diapasonParticles != null) + { + _diapasonParticles.Stop(); + var emission = _diapasonParticles.emission; + emission.enabled = false; + } + + if (_currentDetectedEmitter != null) + { + _currentDetectedEmitter.StopListening(); + } + + ArmEquipment equipment = _armsSystem.GetArmEquipment(_equipmentArmIndex); + if (equipment != null) + { + equipment.StopShake(); + } + + _isVibrating = false; + _vibrationCoroutine = null; + } + + private void OnEmitterEntered(AudioListenable emitter) + { + + emitter.SetConcentrating(true); + + if (_contactFeedbackPrefab != null && _contactFeedback == null) + { + _contactFeedback = Instantiate(_contactFeedbackPrefab, emitter.transform); + _contactFeedback.transform.localPosition = Vector3.zero; + } + + OnEmitterDetected?.Invoke(emitter); + } + + private void OnEmitterExited(AudioListenable emitter) + { + emitter.SetConcentrating(false); + + if (!emitter.HasBeenTapped) + { + emitter.StopListening(); + } + + if (_contactFeedback != null) + { + Destroy(_contactFeedback); + _contactFeedback = null; + } + + if (_diapasonAnimator != null) + { + _diapasonAnimator.SetBool(_vibratingBoolParam, false); + } + + if (_diapasonParticles != null) + { + _diapasonParticles.Stop(); + var emission = _diapasonParticles.emission; + emission.enabled = false; + } + + _isVibrating = false; + + OnEmitterLost?.Invoke(emitter); + } + + void OnDrawGizmosSelected() + { + if (_detectionPoints == null || !_isEquipped) + return; + + Gizmos.color = Color.yellow; + + foreach (Transform detectionPoint in _detectionPoints) + { + if (detectionPoint != null) + { + Gizmos.DrawWireSphere(detectionPoint.position, _detectionRadius); + } + } + } +} diff --git a/Assets/Scripts/DiapasonEquipmentManager.cs.meta b/Assets/Scripts/DiapasonEquipmentManager.cs.meta new file mode 100644 index 00000000..af39970a --- /dev/null +++ b/Assets/Scripts/DiapasonEquipmentManager.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 38b80731eb88f834ab3d79a566e40b48 \ No newline at end of file diff --git a/Assets/Scripts/DiapasonEquipmentTester.cs b/Assets/Scripts/DiapasonEquipmentTester.cs new file mode 100644 index 00000000..9e888613 --- /dev/null +++ b/Assets/Scripts/DiapasonEquipmentTester.cs @@ -0,0 +1,41 @@ +using UnityEngine; +using UnityEngine.InputSystem; + +public class DiapasonEquipmentTester : MonoBehaviour +{ + [Header("References")] + [SerializeField] private DiapasonEquipmentManager _equipmentManager; + + [Header("Input")] + [SerializeField] private Key _equipKey = Key.E; + [SerializeField] private Key _unequipKey = Key.R; + + void Update() + { + if (_equipmentManager == null) + return; + + if (Keyboard.current[_equipKey].wasPressedThisFrame) + { + _equipmentManager.EquipDiapason(); + } + + if (Keyboard.current[_unequipKey].wasPressedThisFrame) + { + _equipmentManager.UnequipDiapason(); + } + } + + void OnGUI() + { + GUILayout.BeginArea(new Rect(10, 10, 350, 150)); + GUILayout.Label("=== Diapason Equipment System ==="); + GUILayout.Label($"Press {_equipKey} to Equip Diapason"); + GUILayout.Label($"Press {_unequipKey} to Unequip Diapason"); + GUILayout.Label(""); + GUILayout.Label("When equipped:"); + GUILayout.Label("• Move LEFT hand to touch AudioListenable"); + GUILayout.Label("• LEFT CLICK to tap and activate"); + GUILayout.EndArea(); + } +} diff --git a/Assets/Scripts/DiapasonEquipmentTester.cs.meta b/Assets/Scripts/DiapasonEquipmentTester.cs.meta new file mode 100644 index 00000000..01be6d3d --- /dev/null +++ b/Assets/Scripts/DiapasonEquipmentTester.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 9279e0fb73118d14ba6f2cf05170a660 \ No newline at end of file diff --git a/Assets/Scripts/DiapasonPoseTweaker.cs b/Assets/Scripts/DiapasonPoseTweaker.cs new file mode 100644 index 00000000..de3cdc47 --- /dev/null +++ b/Assets/Scripts/DiapasonPoseTweaker.cs @@ -0,0 +1,175 @@ +using UnityEngine; + +[ExecuteInEditMode] +public class DiapasonPoseTweaker : MonoBehaviour +{ + [Header("References")] + [SerializeField] private OctoIkArmsImproved _armsSystem; + [SerializeField] private int _armIndex = 1; + + [Header("Quick Presets")] + [SerializeField] private bool _applyPreset1 = false; + [SerializeField] private bool _applyPreset2 = false; + [SerializeField] private bool _applyPreset3 = false; + + [Header("Live Tweaking (Runtime Only)")] + [SerializeField] private Vector3 _shoulderRotation = new Vector3(20, 0, -10); + [SerializeField] private Vector3 _elbowRotation = new Vector3(0, 0, 0); + [SerializeField] private Vector3 _wristRotation = new Vector3(0, 0, 90); + + [Header("Preview")] + [SerializeField] private bool _previewPose = false; + + private ArmEquipment _equipment; + private bool _wasPreviewActive = false; + + void Update() + { + if (!Application.isPlaying) + return; + + if (_armsSystem == null) + return; + + if (_equipment == null) + { + var armRigField = typeof(OctoIkArmsImproved).GetField("_rightArm", + System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); + + if (armRigField != null) + { + var armRig = armRigField.GetValue(_armsSystem); + var equipmentField = armRig.GetType().GetField("Equipment"); + if (equipmentField != null) + { + _equipment = (ArmEquipment)equipmentField.GetValue(armRig); + } + } + } + + if (_equipment == null) + return; + + if (_previewPose && _equipment.State == ArmState.Environmental) + { + ApplyRotations(); + _wasPreviewActive = true; + } + else if (_wasPreviewActive && !_previewPose) + { + ResetRotations(); + _wasPreviewActive = false; + } + + if (_equipment.State == ArmState.Equipped) + { + _equipment.ShoulderRotationOffset = _shoulderRotation; + _equipment.ElbowRotationOffset = _elbowRotation; + _equipment.WristRotationOffset = _wristRotation; + } + } + + void OnValidate() + { + if (_applyPreset1) + { + _applyPreset1 = false; + ApplyPreset1(); + } + + if (_applyPreset2) + { + _applyPreset2 = false; + ApplyPreset2(); + } + + if (_applyPreset3) + { + _applyPreset3 = false; + ApplyPreset3(); + } + } + + private void ApplyPreset1() + { + _shoulderRotation = new Vector3(30, 0, -15); + _elbowRotation = new Vector3(0, 10, 0); + _wristRotation = new Vector3(0, 0, 90); + Debug.Log("[DiapasonPose] Applied Preset 1: Close to body, slight inward"); + } + + private void ApplyPreset2() + { + _shoulderRotation = new Vector3(20, -10, -20); + _elbowRotation = new Vector3(0, 0, 0); + _wristRotation = new Vector3(0, -15, 90); + Debug.Log("[DiapasonPose] Applied Preset 2: Further from left hand, angled"); + } + + private void ApplyPreset3() + { + _shoulderRotation = new Vector3(15, 0, -25); + _elbowRotation = new Vector3(0, 15, 0); + _wristRotation = new Vector3(0, 0, 85); + Debug.Log("[DiapasonPose] Applied Preset 3: Natural grip, centered"); + } + + private void ApplyRotations() + { + if (_equipment.ShoulderBone != null) + { + _equipment.ShoulderBone.localRotation = _equipment.OriginalShoulderRotation * Quaternion.Euler(_shoulderRotation); + } + + if (_equipment.ElbowBone != null) + { + _equipment.ElbowBone.localRotation = _equipment.OriginalElbowRotation * Quaternion.Euler(_elbowRotation); + } + + if (_equipment.WristBone != null) + { + _equipment.WristBone.localRotation = _equipment.OriginalWristRotation * Quaternion.Euler(_wristRotation); + } + } + + private void ResetRotations() + { + if (_equipment.ShoulderBone != null) + { + _equipment.ShoulderBone.localRotation = _equipment.OriginalShoulderRotation; + } + + if (_equipment.ElbowBone != null) + { + _equipment.ElbowBone.localRotation = _equipment.OriginalElbowRotation; + } + + if (_equipment.WristBone != null) + { + _equipment.WristBone.localRotation = _equipment.OriginalWristRotation; + } + } + + void OnGUI() + { + if (!Application.isPlaying) + return; + + GUILayout.BeginArea(new Rect(10, 150, 350, 250)); + GUILayout.Label("=== Diapason Pose Tweaker ==="); + + GUILayout.Label($"Shoulder: {_shoulderRotation}"); + GUILayout.Label($"Elbow: {_elbowRotation}"); + GUILayout.Label($"Wrist: {_wristRotation}"); + + GUILayout.Space(10); + GUILayout.Label("Tips:"); + GUILayout.Label("• Shoulder X: + = down, - = up"); + GUILayout.Label("• Shoulder Y: + = inward, - = outward"); + GUILayout.Label("• Shoulder Z: + = twist out, - = twist in"); + GUILayout.Label("• Elbow Y: + = bend out, - = bend in"); + GUILayout.Label("• Wrist Z: rotation du diapason"); + + GUILayout.EndArea(); + } +} diff --git a/Assets/Scripts/DiapasonPoseTweaker.cs.meta b/Assets/Scripts/DiapasonPoseTweaker.cs.meta new file mode 100644 index 00000000..57b64544 --- /dev/null +++ b/Assets/Scripts/DiapasonPoseTweaker.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 8d1a1f500877b404fa6d23dff3bfa8c8 \ No newline at end of file diff --git a/Assets/Scripts/EquippableTapSettings.cs b/Assets/Scripts/EquippableTapSettings.cs new file mode 100644 index 00000000..6b9dfe48 --- /dev/null +++ b/Assets/Scripts/EquippableTapSettings.cs @@ -0,0 +1,32 @@ +using UnityEngine; + +[System.Serializable] +public class TapAnimationSettings +{ + [Header("Tap Motion")] + [Tooltip("Elbow rotation during windup (degrees)")] + public float WindupRotation = 15f; + + [Tooltip("Duration of windup (pull back)")] + public float WindupDuration = 0.1f; + + [Tooltip("Duration of strike (forward snap)")] + public float StrikeDuration = 0.05f; + + [Tooltip("Wrist snap rotation during strike (degrees)")] + public float WristSnapRotation = 10f; + + [Header("Vibration Shake")] + [Tooltip("Shake intensity during vibration")] + public float ShakeIntensity = 2f; + + [Tooltip("Shake speed (frequency)")] + public float ShakeSpeed = 30f; +} + +public class EquippableTapSettings : MonoBehaviour +{ + [SerializeField] private TapAnimationSettings _tapSettings = new TapAnimationSettings(); + + public TapAnimationSettings TapSettings => _tapSettings; +} diff --git a/Assets/Scripts/EquippableTapSettings.cs.meta b/Assets/Scripts/EquippableTapSettings.cs.meta new file mode 100644 index 00000000..44f1cb9d --- /dev/null +++ b/Assets/Scripts/EquippableTapSettings.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: b46af809fa8f34d49b3dec606a505c5e \ No newline at end of file diff --git a/Assets/Scripts/OctoIkArmsImproved.cs b/Assets/Scripts/OctoIkArmsImproved.cs index e11f9d10..96e714f8 100644 --- a/Assets/Scripts/OctoIkArmsImproved.cs +++ b/Assets/Scripts/OctoIkArmsImproved.cs @@ -27,6 +27,9 @@ public class OctoIkArmsImproved : MonoBehaviour public OctoIkLimb Arm; public Vector3 RotationOffset; public RaycastRig[] Raycasts; + + [Header("Equipment System")] + public ArmEquipment Equipment; [HideInInspector] public Vector3 TargetOriginPos; [HideInInspector] public Quaternion TargetOriginRot; @@ -47,6 +50,27 @@ public class OctoIkArmsImproved : MonoBehaviour PoleOriginPos = Arm.Pole.localPosition; } } + + if (Equipment != null) + { + Equipment.Initialize(); + } + } + + public bool IsEnvironmentalIkActive() + { + if (Equipment == null) + return Enabled; + + return Enabled && Equipment.State == ArmState.Environmental; + } + + public float GetEnvironmentalIkWeight() + { + if (Equipment == null) + return 1f; + + return Equipment.IkWeight; } } @@ -148,6 +172,19 @@ public class OctoIkArmsImproved : MonoBehaviour PerformRaycasts(); FindNearestHits(); UpdateArmPositions(); + UpdateEquippedPoses(); + } + + private void UpdateEquippedPoses() + { + for (int i = 0; i < _arms.Length; i++) + { + ArmRig armRig = _arms[i]; + if (armRig.Equipment != null) + { + armRig.Equipment.UpdateEquippedPose(); + } + } } // Cast all configured raycasts and store results @@ -157,7 +194,7 @@ public class OctoIkArmsImproved : MonoBehaviour { ArmRig armRig = _arms[i]; - if (!armRig.Enabled || armRig.Raycasts == null) + if (!armRig.IsEnvironmentalIkActive() || armRig.Raycasts == null) continue; for (int u = 0; u < armRig.Raycasts.Length; u++) @@ -247,24 +284,23 @@ public class OctoIkArmsImproved : MonoBehaviour { ArmRig armRig = _arms[i]; if (armRig.Arm == null || armRig.Arm.Target == null) continue; + + if (!armRig.IsEnvironmentalIkActive()) + continue; RaycastInfos raycastInfos = _nearestHitRaycasts[i]; - // Default to origin position/rotation Vector3 targetPos = armRig.TargetOriginPos; Quaternion targetRot = armRig.TargetOriginRot; bool shouldStick = false; - // Check if we should stick to surface if (raycastInfos.HasHit && _noHitFrameCount[i] < _settings.StabilityFrames) { if (IsValidSurface(raycastInfos, i)) { - // Calculate target position on surface targetPos = armRig.Arm.Target.parent.InverseTransformPoint(raycastInfos.Position); - // Calculate target rotation aligned to surface targetRot = Quaternion.LookRotation( -armRig.Arm.Target.parent.InverseTransformDirection(raycastInfos.Normal), transform.up @@ -274,12 +310,10 @@ public class OctoIkArmsImproved : MonoBehaviour } } - // Smooth stickiness transition float targetStickiness = shouldStick ? 1f : 0f; float stickinessSpeed = shouldStick ? _settings.StickSpeed : _settings.ReleaseSpeed; _currentStickiness[i] = Mathf.MoveTowards(_currentStickiness[i], targetStickiness, stickinessSpeed * Time.deltaTime); - // Apply distance-based stickiness factor (hysteresis) float distanceFactor = 0f; if (shouldStick && raycastInfos.HasHit) { @@ -287,17 +321,14 @@ public class OctoIkArmsImproved : MonoBehaviour distanceFactor = Mathf.Clamp01(distanceFactor); } - float finalStickiness = _currentStickiness[i] * distanceFactor; + float finalStickiness = _currentStickiness[i] * distanceFactor * armRig.GetEnvironmentalIkWeight(); - // Calculate interpolation speeds float posSpeed = Mathf.Lerp(_settings.ReleaseSpeed, _settings.StickSpeed, finalStickiness); float rotSpeed = _settings.RotationSpeed * Mathf.Deg2Rad; - // Exponential smoothing for natural movement float tPos = 1f - Mathf.Exp(-posSpeed * Time.deltaTime); float tRot = 1f - Mathf.Exp(-rotSpeed * Time.deltaTime); - // Apply smooth interpolation armRig.Arm.Target.localPosition = Vector3.Lerp(armRig.Arm.Target.localPosition, targetPos, tPos); armRig.Arm.Target.localRotation = Quaternion.Slerp(armRig.Arm.Target.localRotation, targetRot, tRot); } @@ -327,4 +358,66 @@ public class OctoIkArmsImproved : MonoBehaviour return true; } + + public void EquipObjectOnArm(int armIndex, GameObject objectToEquip, System.Action onComplete = null) + { + if (armIndex < 0 || armIndex >= _arms.Length) + { + Debug.LogError($"[OctoIkArms] Invalid arm index: {armIndex}"); + return; + } + + ArmRig armRig = _arms[armIndex]; + + if (armRig.Equipment == null) + { + Debug.LogError($"[OctoIkArms] Arm {armIndex} has no Equipment system configured!"); + return; + } + + armRig.Equipment.StartTransitionToEquipped(objectToEquip, onComplete); + } + + public void UnequipObjectFromArm(int armIndex, System.Action onComplete = null) + { + if (armIndex < 0 || armIndex >= _arms.Length) + { + Debug.LogError($"[OctoIkArms] Invalid arm index: {armIndex}"); + return; + } + + ArmRig armRig = _arms[armIndex]; + + if (armRig.Equipment == null) + { + Debug.LogError($"[OctoIkArms] Arm {armIndex} has no Equipment system configured!"); + return; + } + + armRig.Equipment.StartTransitionToEnvironmental(onComplete); + } + + public ArmState GetArmState(int armIndex) + { + if (armIndex < 0 || armIndex >= _arms.Length) + return ArmState.Environmental; + + if (_arms[armIndex].Equipment == null) + return ArmState.Environmental; + + return _arms[armIndex].Equipment.State; + } + + public bool IsArmInEnvironmentalMode(int armIndex) + { + return GetArmState(armIndex) == ArmState.Environmental; + } + + public ArmEquipment GetArmEquipment(int armIndex) + { + if (armIndex < 0 || armIndex >= _arms.Length) + return null; + + return _arms[armIndex].Equipment; + } } diff --git a/Assets/Unheimlich_POC/Content/Environment/Props/SoundEmitter.prefab b/Assets/Unheimlich_POC/Content/Environment/Props/SoundEmitter.prefab index b40e5a7e..205b21d2 100644 --- a/Assets/Unheimlich_POC/Content/Environment/Props/SoundEmitter.prefab +++ b/Assets/Unheimlich_POC/Content/Environment/Props/SoundEmitter.prefab @@ -11,7 +11,7 @@ GameObject: - component: {fileID: 3279932207826154136} - component: {fileID: 1111284075867638658} - component: {fileID: 6070160908100218527} - m_Layer: 0 + m_Layer: 9 m_Name: Cube m_TagString: Untagged m_Icon: {fileID: 0} @@ -99,7 +99,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 4721786510254652090} - m_Layer: 0 + m_Layer: 9 m_Name: Render m_TagString: Untagged m_Icon: {fileID: 0} @@ -133,7 +133,7 @@ GameObject: - component: {fileID: 5755410889840572423} - component: {fileID: 196559139152754184} - component: {fileID: 7881895566796712951} - m_Layer: 0 + m_Layer: 9 m_Name: SoundEmitter m_TagString: Untagged m_Icon: {fileID: 0} @@ -244,6 +244,10 @@ PrefabInstance: propertyPath: m_Name value: DiapasonParticles objectReference: {fileID: 0} + - target: {fileID: 1124780566057055841, guid: 8bb34a961d0969644bdd7a29960b46c9, type: 3} + propertyPath: m_Layer + value: 9 + objectReference: {fileID: 0} - target: {fileID: 1134716054066844273, guid: 8bb34a961d0969644bdd7a29960b46c9, type: 3} propertyPath: m_LocalScale.x value: 5 diff --git a/Assets/Unheimlich_POC/Content/Gameplay/Characters/Player/V_Octocore/Prefabs/OctoPlayerFP.prefab b/Assets/Unheimlich_POC/Content/Gameplay/Characters/Player/V_Octocore/Prefabs/OctoPlayerFP.prefab index 115e5ca3..6890cc39 100644 --- a/Assets/Unheimlich_POC/Content/Gameplay/Characters/Player/V_Octocore/Prefabs/OctoPlayerFP.prefab +++ b/Assets/Unheimlich_POC/Content/Gameplay/Characters/Player/V_Octocore/Prefabs/OctoPlayerFP.prefab @@ -31,6 +31,37 @@ Transform: m_Children: [] m_Father: {fileID: 8725966219179855439} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1303494181593144014 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8695354205568494894} + m_Layer: 0 + m_Name: DetectionPalm + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8695354205568494894 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1303494181593144014} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.003, y: 0.0623, z: 0.0074} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1846451716686024273} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2101508725665932610 GameObject: m_ObjectHideFlags: 0 @@ -44,6 +75,7 @@ GameObject: - component: {fileID: 6053283114444666027} - component: {fileID: 6989128982853398086} - component: {fileID: 522399111239992785} + - component: {fileID: 3700193918383472175} m_Layer: 0 m_Name: Camera Player m_TagString: MainCamera @@ -99,7 +131,7 @@ Camera: height: 1 near clip plane: 0.1 far clip plane: 1000 - field of view: 80 + field of view: 60 orthographic: 0 orthographic size: 5 m_Depth: 0 @@ -148,7 +180,7 @@ MonoBehaviour: m_Bits: 1 m_VolumeTrigger: {fileID: 0} m_VolumeFrameworkUpdateModeOption: 2 - m_RenderPostProcessing: 0 + m_RenderPostProcessing: 1 m_Antialiasing: 0 m_AntialiasingQuality: 2 m_StopNaN: 0 @@ -186,6 +218,84 @@ MonoBehaviour: serializedVersion: 2 m_Bits: 8 _raycastInterval: 0 +--- !u!114 &3700193918383472175 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2101508725665932610} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6ed4b22b4be6bbe49a67cbe552c633e1, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::Unheimlich.UI.DialogueBlurEffectURP + _globalVolume: {fileID: 0} + _gaussianStart: 0 + _gaussianEnd: 15 + _maxGaussianRadius: 4 + _startPostExposure: 0 + _targetPostExposure: 0.3 + _fadeDuration: 1 + _fadeCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + _dialogueLayers: + serializedVersion: 2 + m_Bits: 64 + _autoCreateDialogueCamera: 1 +--- !u!1 &2879350702633194151 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 149218823560050265} + m_Layer: 0 + m_Name: DetectionIndex + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &149218823560050265 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2879350702633194151} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1299817032685235492} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &4625798697874999476 GameObject: m_ObjectHideFlags: 0 @@ -217,6 +327,37 @@ Transform: m_Children: [] m_Father: {fileID: 4440040250278121308} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &5569340221164642838 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 567066763639842942} + m_Layer: 0 + m_Name: DiapasonSocket + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &567066763639842942 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5569340221164642838} + serializedVersion: 2 + m_LocalRotation: {x: 0.14794564, y: 0.42486653, z: -0.89259064, w: 0.029705252} + m_LocalPosition: {x: 0.0545, y: -0.0197, z: 0.0816} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8537149938782507319} + m_LocalEulerAnglesHint: {x: 50.108, y: 338.133, z: 173.493} --- !u!1 &5575782855984327677 GameObject: m_ObjectHideFlags: 0 @@ -249,7 +390,6 @@ Transform: m_Children: - {fileID: 1836339402272228918} - {fileID: 1175390396199967368} - - {fileID: 1104299543543969252} m_Father: {fileID: 8725966219179855439} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &986184075687059205 @@ -278,11 +418,12 @@ GameObject: - component: {fileID: 688176918831081180} - component: {fileID: 3522630547589622128} - component: {fileID: 493263706218074437} - - component: {fileID: 2525145087024189396} + - component: {fileID: 738317799072394575} - component: {fileID: 3622123650942162330} - component: {fileID: 4152409555847978467} - component: {fileID: 6849123884232344894} - - component: {fileID: 4281753130586762125} + - component: {fileID: 663333287375164531} + - component: {fileID: 2301728592307354479} m_Layer: 0 m_Name: OctoPlayerFP m_TagString: Player @@ -390,7 +531,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: e05e5ee4f09d55d4a93324fe0eb85d6e, type: 3} m_Name: m_EditorClassIdentifier: Assembly-CSharp::Unheimlich.Gameplay.Player.CameraEffects - Settings: {fileID: 0} + Settings: {fileID: 11400000, guid: 28f72f5bbd71f384a86c547567dbb5bf, type: 2} --- !u!114 &493263706218074437 MonoBehaviour: m_ObjectHideFlags: 0 @@ -404,7 +545,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Assembly-CSharp::Unheimlich.Gameplay.CameraControl.CameraPanController _defaultSettings: {fileID: 11400000, guid: 9973a518f73c3c1489819494e37d0980, type: 2} ---- !u!114 &2525145087024189396 +--- !u!114 &738317799072394575 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -413,54 +554,19 @@ MonoBehaviour: m_GameObject: {fileID: 8162540767767967414} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2094bd9c6f72e5b4cadf430f4d70f8f6, type: 3} + m_Script: {fileID: 11500000, guid: 46c1f473fbd3cac4397aabaa76d18357, type: 3} m_Name: - m_EditorClassIdentifier: Assembly-CSharp::Unheimlich.Gameplay.Player.DiapasonListeningHandler - _diapasonObject: {fileID: 4171827204873703387} - _diapasonAnimator: {fileID: 2521987284762225689} - _listeningRange: 5 - _listenableLayers: - serializedVersion: 2 - m_Bits: 0 - _concentrationDuration: 1 - _breathInDuration: 0.5 - _diapasonTweenDuration: 0.3 - _diapasonHideOffset: -0.5 - _diapasonTweenCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - _vibrationDuration: 15 + m_EditorClassIdentifier: Assembly-CSharp::Unheimlich.Gameplay.Player.DiapasonListeningHandlerV2 + _equipmentManager: {fileID: 2301728592307354479} + _cameraPanController: {fileID: 493263706218074437} + _disablePlayerMovementDuringListen: 1 + _enablePanMode: 1 _vignetteIntensity: 0.5 _vignetteEffect: {fileID: 3622123650942162330} - _handTouchFeedback: {fileID: 0} - _diapasonParticles: {fileID: 8433960879374805761} _breathInClip: {fileID: 8300000, guid: 091b6df1c99cbd647bce921a5ba7c1af, type: 3} - _diapasonTapClip: {fileID: 8300000, guid: 99100d62c8b5d264f8694516673a9eeb, type: 3} - _diapasonTapVolume: 0.3 - _ambientAttenuationAmount: 0.3 - _audioFadeDuration: 0.5 - _touchDistance: 2 + _breathInVolume: 1 + _concentrationDuration: 1 + _breathInDuration: 0.5 --- !u!114 &3622123650942162330 MonoBehaviour: m_ObjectHideFlags: 0 @@ -502,11 +608,11 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Assembly-CSharp::Unheimlich.Gameplay.DetectiveBoard.DetectiveBoardController _boardCameraPanSettings: {fileID: 11400000, guid: f176d1f8c15496946994170f1b633061, type: 2} - _activationRange: 2 + _activationRange: 10 _boardLayer: serializedVersion: 2 m_Bits: 128 ---- !u!114 &4281753130586762125 +--- !u!114 &663333287375164531 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -515,13 +621,69 @@ MonoBehaviour: m_GameObject: {fileID: 8162540767767967414} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 39b78978d656e894ea455342398ef8ba, type: 3} + m_Script: {fileID: 11500000, guid: d47a9ebc2bd5f9345ad873a400c3d8bf, type: 3} m_Name: - m_EditorClassIdentifier: Assembly-CSharp::Unheimlich.Gameplay.Player.HandTouchFeedback - _feedbackImage: {fileID: 0} - _readyColor: {r: 0, g: 1, b: 0, a: 1} - _pulseSpeed: 2 - _pulseIntensity: 0.3 + m_EditorClassIdentifier: Assembly-CSharp::Unheimlich.Gameplay.Player.Player +--- !u!114 &2301728592307354479 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8162540767767967414} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 38b80731eb88f834ab3d79a566e40b48, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::DiapasonEquipmentManager + _armsSystem: {fileID: 147364745632062440} + _diapasonPrefab: {fileID: 8689584738786529861, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3} + _equipmentArmIndex: 1 + _soundEmitterLayer: + serializedVersion: 2 + m_Bits: 512 + _detectionRadius: 0.15 + _detectionPoints: + - {fileID: 8695354205568494894} + - {fileID: 149218823560050265} + - {fileID: 4703953626186906845} + _contactFeedbackPrefab: {fileID: 0} + _vibratingBoolParam: IsVibrating + _tapTriggerParam: Tap + _tapSound: {fileID: 8300000, guid: 99100d62c8b5d264f8694516673a9eeb, type: 3} + _tapVolume: 0.295 + _vibrationDuration: 15 +--- !u!1 &8249677106937945868 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4703953626186906845} + m_Layer: 0 + m_Name: DetectionThumb + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4703953626186906845 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8249677106937945868} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 9153447681258289317} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1001 &2564566619627430770 PrefabInstance: m_ObjectHideFlags: 0 @@ -570,6 +732,10 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} + - target: {fileID: 880987313172909187, guid: 73480b78f75094a4da6b76dedb392ae9, type: 3} + propertyPath: m_Enabled + value: 0 + objectReference: {fileID: 0} - target: {fileID: 880987313172909187, guid: 73480b78f75094a4da6b76dedb392ae9, type: 3} propertyPath: _leftArm.RotationOffset.x value: 0 @@ -578,6 +744,10 @@ PrefabInstance: propertyPath: _rightArm.RotationOffset.x value: 0 objectReference: {fileID: 0} + - target: {fileID: 880987313172909187, guid: 73480b78f75094a4da6b76dedb392ae9, type: 3} + propertyPath: _settings.LayerMask.m_Bits + value: 0 + objectReference: {fileID: 0} - target: {fileID: 899615586671794689, guid: 73480b78f75094a4da6b76dedb392ae9, type: 3} propertyPath: m_Name value: Arms @@ -622,6 +792,14 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 53.364 objectReference: {fileID: 0} + - target: {fileID: 2072281234324016569, guid: 73480b78f75094a4da6b76dedb392ae9, type: 3} + propertyPath: m_LocalPosition.y + value: -0.179 + objectReference: {fileID: 0} + - target: {fileID: 2072281234324016569, guid: 73480b78f75094a4da6b76dedb392ae9, type: 3} + propertyPath: m_LocalPosition.z + value: 0.033 + objectReference: {fileID: 0} - target: {fileID: 2656140929319940858, guid: 73480b78f75094a4da6b76dedb392ae9, type: 3} propertyPath: m_LocalRotation.w value: 0.9961947 @@ -846,118 +1024,272 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.y value: -30 objectReference: {fileID: 0} - m_RemovedComponents: [] + m_RemovedComponents: + - {fileID: 880987313172909187, guid: 73480b78f75094a4da6b76dedb392ae9, type: 3} m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] + m_AddedGameObjects: + - targetCorrespondingSourceObject: {fileID: 4181805340600085795, guid: 73480b78f75094a4da6b76dedb392ae9, type: 3} + insertIndex: -1 + addedObject: {fileID: 8695354205568494894} + - targetCorrespondingSourceObject: {fileID: 6670042068371528663, guid: 73480b78f75094a4da6b76dedb392ae9, type: 3} + insertIndex: -1 + addedObject: {fileID: 4703953626186906845} + - targetCorrespondingSourceObject: {fileID: 3575518857139523158, guid: 73480b78f75094a4da6b76dedb392ae9, type: 3} + insertIndex: -1 + addedObject: {fileID: 149218823560050265} + - targetCorrespondingSourceObject: {fileID: 6191648371188871749, guid: 73480b78f75094a4da6b76dedb392ae9, type: 3} + insertIndex: -1 + addedObject: {fileID: 567066763639842942} + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 899615586671794689, guid: 73480b78f75094a4da6b76dedb392ae9, type: 3} + insertIndex: -1 + addedObject: {fileID: 147364745632062440} m_SourcePrefab: {fileID: 100100000, guid: 73480b78f75094a4da6b76dedb392ae9, type: 3} +--- !u!4 &1299817032685235492 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3575518857139523158, guid: 73480b78f75094a4da6b76dedb392ae9, type: 3} + m_PrefabInstance: {fileID: 2564566619627430770} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1650708088870299847 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3854893824720358325, guid: 73480b78f75094a4da6b76dedb392ae9, type: 3} + m_PrefabInstance: {fileID: 2564566619627430770} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1836099041693630956 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4245779101658522270, guid: 73480b78f75094a4da6b76dedb392ae9, type: 3} + m_PrefabInstance: {fileID: 2564566619627430770} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1846451716686024273 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4181805340600085795, guid: 73480b78f75094a4da6b76dedb392ae9, type: 3} + m_PrefabInstance: {fileID: 2564566619627430770} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1847598235320137047 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4194213612049569317, guid: 73480b78f75094a4da6b76dedb392ae9, type: 3} + m_PrefabInstance: {fileID: 2564566619627430770} + m_PrefabAsset: {fileID: 0} --- !u!4 &2639365499984405449 stripped Transform: m_CorrespondingSourceObject: {fileID: 520098895314436283, guid: 73480b78f75094a4da6b76dedb392ae9, type: 3} m_PrefabInstance: {fileID: 2564566619627430770} m_PrefabAsset: {fileID: 0} ---- !u!1001 &4716067031739800990 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 4440040250278121308} - m_Modifications: - - target: {fileID: 2315210776226997430, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3} - propertyPath: m_LocalRotation.w - value: 0.75190187 - objectReference: {fileID: 0} - - target: {fileID: 2315210776226997430, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3} - propertyPath: m_LocalRotation.x - value: -0.13395086 - objectReference: {fileID: 0} - - target: {fileID: 2315210776226997430, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3} - propertyPath: m_LocalRotation.y - value: -0.6397146 - objectReference: {fileID: 0} - - target: {fileID: 2315210776226997430, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3} - propertyPath: m_LocalRotation.z - value: -0.08640652 - objectReference: {fileID: 0} - - target: {fileID: 2315210776226997430, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: -18.179 - objectReference: {fileID: 0} - - target: {fileID: 2315210776226997430, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: -81.182 - objectReference: {fileID: 0} - - target: {fileID: 2315210776226997430, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 2.5 - objectReference: {fileID: 0} - - target: {fileID: 5629947512209565818, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3} - propertyPath: m_LocalPosition.x - value: 0.78281003 - objectReference: {fileID: 0} - - target: {fileID: 5629947512209565818, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3} - propertyPath: m_LocalPosition.y - value: -0.6192932 - objectReference: {fileID: 0} - - target: {fileID: 5629947512209565818, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3} - propertyPath: m_LocalPosition.z - value: 1.138 - objectReference: {fileID: 0} - - target: {fileID: 5629947512209565818, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3} - propertyPath: m_LocalRotation.w - value: 0.9926423 - objectReference: {fileID: 0} - - target: {fileID: 5629947512209565818, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 5629947512209565818, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 5629947512209565818, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3} - propertyPath: m_LocalRotation.z - value: 0.121084325 - objectReference: {fileID: 0} - - target: {fileID: 5629947512209565818, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5629947512209565818, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5629947512209565818, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 13.909 - objectReference: {fileID: 0} - - target: {fileID: 8689584738786529861, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3} - propertyPath: m_Name - value: Diapason - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3} ---- !u!4 &1104299543543969252 stripped +--- !u!4 &3379767859340007146 stripped Transform: - m_CorrespondingSourceObject: {fileID: 5629947512209565818, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3} - m_PrefabInstance: {fileID: 4716067031739800990} + m_CorrespondingSourceObject: {fileID: 968400598511252888, guid: 73480b78f75094a4da6b76dedb392ae9, type: 3} + m_PrefabInstance: {fileID: 2564566619627430770} m_PrefabAsset: {fileID: 0} ---- !u!95 &2521987284762225689 stripped -Animator: - m_CorrespondingSourceObject: {fileID: 7173446854330675591, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3} - m_PrefabInstance: {fileID: 4716067031739800990} - m_PrefabAsset: {fileID: 0} ---- !u!1 &4171827204873703387 stripped +--- !u!1 &3452915509921429875 stripped GameObject: - m_CorrespondingSourceObject: {fileID: 8689584738786529861, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3} - m_PrefabInstance: {fileID: 4716067031739800990} + m_CorrespondingSourceObject: {fileID: 899615586671794689, guid: 73480b78f75094a4da6b76dedb392ae9, type: 3} + m_PrefabInstance: {fileID: 2564566619627430770} m_PrefabAsset: {fileID: 0} ---- !u!198 &8433960879374805761 stripped -ParticleSystem: - m_CorrespondingSourceObject: {fileID: 3781237283850892959, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3} - m_PrefabInstance: {fileID: 4716067031739800990} +--- !u!114 &147364745632062440 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3452915509921429875} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 97777a4e863d974428be79c0d8a40883, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::OctoIkArmsImproved + _leftArm: + Enabled: 1 + Arm: {fileID: 6654999116103601949} + RotationOffset: {x: 0, y: 90, z: -15} + Raycasts: + - Root: {fileID: 1650708088870299847} + Distance: 0.7 + - Root: {fileID: 5600837329012510017} + Distance: 0.5 + - Root: {fileID: 4206463379806715489} + Distance: 0.6 + Equipment: + IkLimb: {fileID: 0} + HandSocket: {fileID: 0} + ShoulderBone: {fileID: 0} + ElbowBone: {fileID: 0} + WristBone: {fileID: 0} + ShoulderRotationOffset: {x: 0, y: 0, z: 0} + ElbowRotationOffset: {x: 0, y: 0, z: 0} + WristRotationOffset: {x: 0, y: 0, z: 90} + RotationSpeed: 10 + IkBlendDuration: 0.3 + TransitionOffset: {x: 0.5, y: -0.3, z: 0.2} + TransitionOutDuration: 0.3 + TransitionInDuration: 0.3 + TransitionCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + TapWindupRotation: 15 + TapWindupDuration: 0.1 + TapStrikeDuration: 0.05 + TapWristSnapRotation: 10 + ShakeIntensity: 2 + ShakeSpeed: 30 + State: 0 + OriginalTargetPosition: {x: 0, y: 0, z: 0} + OriginalTargetRotation: {x: 0, y: 0, z: 0, w: 0} + EquippedObject: {fileID: 0} + IkWeight: 1 + OriginalShoulderRotation: {x: 0, y: 0, z: 0, w: 0} + OriginalElbowRotation: {x: 0, y: 0, z: 0, w: 0} + OriginalWristRotation: {x: 0, y: 0, z: 0, w: 0} + TargetOriginPos: {x: 0, y: 0, z: 0} + TargetOriginRot: {x: 0, y: 0, z: 0, w: 0} + PoleOriginPos: {x: 0, y: 0, z: 0} + _rightArm: + Enabled: 1 + Arm: {fileID: 5109069407709118066} + RotationOffset: {x: 0, y: 90, z: -195} + Raycasts: + - Root: {fileID: 3379767859340007146} + Distance: 0.7 + - Root: {fileID: 8991046984519786093} + Distance: 0.5 + - Root: {fileID: 1836099041693630956} + Distance: 0.6 + Equipment: + IkLimb: {fileID: 5109069407709118066} + HandSocket: {fileID: 567066763639842942} + ShoulderBone: {fileID: 1847598235320137047} + ElbowBone: {fileID: 6866065409512133221} + WristBone: {fileID: 8537149938782507319} + ShoulderRotationOffset: {x: -2.8, y: -5.9, z: -1.93} + ElbowRotationOffset: {x: 36.5, y: 24.3, z: -12} + WristRotationOffset: {x: 12.55, y: 31.8, z: 11.79} + RotationSpeed: 10 + IkBlendDuration: 0.3 + TransitionOffset: {x: 0, y: -0.7, z: 0} + TransitionOutDuration: 0.3 + TransitionInDuration: 0.3 + TransitionCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + TapWindupRotation: 15 + TapWindupDuration: 0.1 + TapStrikeDuration: 0.05 + TapWristSnapRotation: 10 + ShakeIntensity: 2 + ShakeSpeed: 30 + State: 0 + OriginalTargetPosition: {x: 0, y: 0, z: 0} + OriginalTargetRotation: {x: 0, y: 0, z: 0, w: 0} + EquippedObject: {fileID: 0} + IkWeight: 1 + OriginalShoulderRotation: {x: 0, y: 0, z: 0, w: 0} + OriginalElbowRotation: {x: 0, y: 0, z: 0, w: 0} + OriginalWristRotation: {x: 0, y: 0, z: 0, w: 0} + TargetOriginPos: {x: 0, y: 0, z: 0} + TargetOriginRot: {x: 0, y: 0, z: 0, w: 0} + PoleOriginPos: {x: 0, y: 0, z: 0} + _settings: + LayerMask: + serializedVersion: 2 + m_Bits: 524800 + StickStartDistance: 0.8 + StickReleaseDistance: 1.2 + StickSpeed: 10 + ReleaseSpeed: 6 + RotationSpeed: 360 + AllowBothArms: 1 + MaxSurfaceAngle: 60 + StabilityFrames: 3 +--- !u!4 &4206463379806715489 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1871096010787708179, guid: 73480b78f75094a4da6b76dedb392ae9, type: 3} + m_PrefabInstance: {fileID: 2564566619627430770} + m_PrefabAsset: {fileID: 0} +--- !u!114 &5109069407709118066 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7309382113032576256, guid: 73480b78f75094a4da6b76dedb392ae9, type: 3} + m_PrefabInstance: {fileID: 2564566619627430770} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f5a9786856021274fbe10be8b0cef721, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::OctoIkLimb +--- !u!4 &5600837329012510017 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7939001859543297587, guid: 73480b78f75094a4da6b76dedb392ae9, type: 3} + m_PrefabInstance: {fileID: 2564566619627430770} + m_PrefabAsset: {fileID: 0} +--- !u!114 &6654999116103601949 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 9208847140532743279, guid: 73480b78f75094a4da6b76dedb392ae9, type: 3} + m_PrefabInstance: {fileID: 2564566619627430770} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f5a9786856021274fbe10be8b0cef721, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::OctoIkLimb +--- !u!4 &6866065409512133221 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8997631150325690647, guid: 73480b78f75094a4da6b76dedb392ae9, type: 3} + m_PrefabInstance: {fileID: 2564566619627430770} + m_PrefabAsset: {fileID: 0} +--- !u!4 &8537149938782507319 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6191648371188871749, guid: 73480b78f75094a4da6b76dedb392ae9, type: 3} + m_PrefabInstance: {fileID: 2564566619627430770} + m_PrefabAsset: {fileID: 0} +--- !u!4 &8991046984519786093 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6868471396772723999, guid: 73480b78f75094a4da6b76dedb392ae9, type: 3} + m_PrefabInstance: {fileID: 2564566619627430770} + m_PrefabAsset: {fileID: 0} +--- !u!4 &9153447681258289317 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6670042068371528663, guid: 73480b78f75094a4da6b76dedb392ae9, type: 3} + m_PrefabInstance: {fileID: 2564566619627430770} m_PrefabAsset: {fileID: 0} diff --git a/Assets/Unheimlich_POC/Content/Gameplay/Diapason/Animations/DiapasonTap.anim b/Assets/Unheimlich_POC/Content/Gameplay/Diapason/Animations/DiapasonTap.anim index 7ccf34a0..8fb875d3 100644 --- a/Assets/Unheimlich_POC/Content/Gameplay/Diapason/Animations/DiapasonTap.anim +++ b/Assets/Unheimlich_POC/Content/Gameplay/Diapason/Animations/DiapasonTap.anim @@ -27,7 +27,7 @@ AnimationClip: inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 0.43333334 + time: 0.11666667 value: {x: -62.351, y: 89.774, z: -89.911} inSlope: {x: 0, y: 0, z: 0} outSlope: {x: 0, y: 0, z: 0} @@ -36,7 +36,7 @@ AnimationClip: inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 0.78333336 + time: 0.15 value: {x: -90, y: 0, z: 0} inSlope: {x: 0, y: 0, z: 0} outSlope: {x: 0, y: 0, z: 0} @@ -62,16 +62,16 @@ AnimationClip: inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 0.23333333 + time: 0.06666667 value: {x: 0, y: 0.055, z: 0} - inSlope: {x: 0, y: 0.23769715, z: 0} - outSlope: {x: 0, y: 0.23769715, z: 0} + inSlope: {x: 0, y: 0.88287514, z: 0} + outSlope: {x: 0, y: 0.88287514, z: 0} tangentMode: 0 weightedMode: 0 inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 0.43333334 + time: 0.11666667 value: {x: 0.053, y: 0.1030021, z: 0} inSlope: {x: 0, y: 0, z: 0} outSlope: {x: 0, y: 0, z: 0} @@ -80,7 +80,7 @@ AnimationClip: inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 0.78333336 + time: 0.15 value: {x: 0, y: 0, z: 0} inSlope: {x: 0, y: 0, z: 0} outSlope: {x: 0, y: 0, z: 0} @@ -126,7 +126,7 @@ AnimationClip: m_AdditiveReferencePoseClip: {fileID: 0} m_AdditiveReferencePoseTime: 0 m_StartTime: 0 - m_StopTime: 0.78333336 + m_StopTime: 0.15 m_OrientationOffsetY: 0 m_Level: 0 m_CycleOffset: 0 @@ -156,7 +156,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.23333333 + time: 0.06666667 value: 0 inSlope: 0 outSlope: 0 @@ -165,7 +165,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.43333334 + time: 0.11666667 value: 0.053 inSlope: 0 outSlope: 0 @@ -174,7 +174,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.78333336 + time: 0.15 value: 0 inSlope: 0 outSlope: 0 @@ -204,16 +204,16 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.23333333 + time: 0.06666667 value: 0.055 - inSlope: 0.23769715 - outSlope: 0.23769715 + inSlope: 0.88287514 + outSlope: 0.88287514 tangentMode: 136 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.43333334 + time: 0.11666667 value: 0.1030021 inSlope: 0 outSlope: 0 @@ -222,7 +222,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.78333336 + time: 0.15 value: 0 inSlope: 0 outSlope: 0 @@ -252,7 +252,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.23333333 + time: 0.06666667 value: 0 inSlope: 0 outSlope: 0 @@ -261,7 +261,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.43333334 + time: 0.11666667 value: 0 inSlope: 0 outSlope: 0 @@ -270,7 +270,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.78333336 + time: 0.15 value: 0 inSlope: 0 outSlope: 0 @@ -300,7 +300,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.43333334 + time: 0.11666667 value: -62.351 inSlope: 0 outSlope: 0 @@ -309,7 +309,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.78333336 + time: 0.15 value: -90 inSlope: 0 outSlope: 0 @@ -339,7 +339,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.43333334 + time: 0.11666667 value: 89.774 inSlope: 0 outSlope: 0 @@ -348,7 +348,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.78333336 + time: 0.15 value: 0 inSlope: 0 outSlope: 0 @@ -378,7 +378,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.43333334 + time: 0.11666667 value: -89.911 inSlope: 0 outSlope: 0 @@ -387,7 +387,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.78333336 + time: 0.15 value: 0 inSlope: 0 outSlope: 0 diff --git a/Assets/Unheimlich_POC/Content/Gameplay/Diapason/Prefabs/Diapason.prefab b/Assets/Unheimlich_POC/Content/Gameplay/Diapason/Prefabs/Diapason.prefab index 055a5d5c..b3e6b519 100644 --- a/Assets/Unheimlich_POC/Content/Gameplay/Diapason/Prefabs/Diapason.prefab +++ b/Assets/Unheimlich_POC/Content/Gameplay/Diapason/Prefabs/Diapason.prefab @@ -56,14 +56,14 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2804686510863457871} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: -0.13395086, y: -0.6397146, z: -0.08640652, w: 0.75190187} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - {fileID: 6952011244025097897} m_Father: {fileID: 5629947512209565818} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_LocalEulerAnglesHint: {x: -18.179, y: -81.182, z: 2.5} --- !u!1 &5030950371277861040 GameObject: m_ObjectHideFlags: 0 @@ -182,8 +182,8 @@ Transform: serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 + m_LocalScale: {x: 0.35, y: 0.35, z: 0.35} + m_ConstrainProportionsScale: 1 m_Children: - {fileID: 2315210776226997430} m_Father: {fileID: 0} diff --git a/Assets/Unheimlich_POC/Content/UI/Screen/HUD/Crosshair/Prefabs.meta b/Assets/Unheimlich_POC/Content/UI/Screen/HUD/Crosshair/Prefabs.meta new file mode 100644 index 00000000..79a03c04 --- /dev/null +++ b/Assets/Unheimlich_POC/Content/UI/Screen/HUD/Crosshair/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9df0cb56bbf72da4d8867c0762b21056 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Unheimlich_POC/Content/UI/Screen/HUD/Crosshair/Crosshair.prefab b/Assets/Unheimlich_POC/Content/UI/Screen/HUD/Crosshair/Prefabs/Crosshair.prefab similarity index 100% rename from Assets/Unheimlich_POC/Content/UI/Screen/HUD/Crosshair/Crosshair.prefab rename to Assets/Unheimlich_POC/Content/UI/Screen/HUD/Crosshair/Prefabs/Crosshair.prefab diff --git a/Assets/Unheimlich_POC/Content/UI/Screen/HUD/Crosshair/Crosshair.prefab.meta b/Assets/Unheimlich_POC/Content/UI/Screen/HUD/Crosshair/Prefabs/Crosshair.prefab.meta similarity index 100% rename from Assets/Unheimlich_POC/Content/UI/Screen/HUD/Crosshair/Crosshair.prefab.meta rename to Assets/Unheimlich_POC/Content/UI/Screen/HUD/Crosshair/Prefabs/Crosshair.prefab.meta diff --git a/Assets/Unheimlich_POC/Content/UI/Screen/HUD/Prefabs.meta b/Assets/Unheimlich_POC/Content/UI/Screen/HUD/Prefabs.meta new file mode 100644 index 00000000..82615749 --- /dev/null +++ b/Assets/Unheimlich_POC/Content/UI/Screen/HUD/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5564aaa81c1b4d24eb35804793f8b916 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Unheimlich_POC/Content/UI/Screen/HUD/Canvas.prefab b/Assets/Unheimlich_POC/Content/UI/Screen/HUD/Prefabs/Canvas.prefab similarity index 100% rename from Assets/Unheimlich_POC/Content/UI/Screen/HUD/Canvas.prefab rename to Assets/Unheimlich_POC/Content/UI/Screen/HUD/Prefabs/Canvas.prefab diff --git a/Assets/Unheimlich_POC/Content/UI/Screen/HUD/Canvas.prefab.meta b/Assets/Unheimlich_POC/Content/UI/Screen/HUD/Prefabs/Canvas.prefab.meta similarity index 100% rename from Assets/Unheimlich_POC/Content/UI/Screen/HUD/Canvas.prefab.meta rename to Assets/Unheimlich_POC/Content/UI/Screen/HUD/Prefabs/Canvas.prefab.meta diff --git a/Assets/Unheimlich_POC/Datas/Camera/Pans.meta b/Assets/Unheimlich_POC/Datas/Camera/Pans.meta new file mode 100644 index 00000000..42d63cb6 --- /dev/null +++ b/Assets/Unheimlich_POC/Datas/Camera/Pans.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1c1241bed4f53a847b58c99c7d2bca65 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Unheimlich_POC/Datas/Camera/DefaultCameraPanSettings.asset b/Assets/Unheimlich_POC/Datas/Camera/Pans/DefaultCameraPanSettings.asset similarity index 100% rename from Assets/Unheimlich_POC/Datas/Camera/DefaultCameraPanSettings.asset rename to Assets/Unheimlich_POC/Datas/Camera/Pans/DefaultCameraPanSettings.asset diff --git a/Assets/Unheimlich_POC/Datas/Camera/DefaultCameraPanSettings.asset.meta b/Assets/Unheimlich_POC/Datas/Camera/Pans/DefaultCameraPanSettings.asset.meta similarity index 100% rename from Assets/Unheimlich_POC/Datas/Camera/DefaultCameraPanSettings.asset.meta rename to Assets/Unheimlich_POC/Datas/Camera/Pans/DefaultCameraPanSettings.asset.meta diff --git a/Assets/Unheimlich_POC/Datas/Camera/DetectiveBoardPanSettings.asset b/Assets/Unheimlich_POC/Datas/Camera/Pans/DetectiveBoardPanSettings.asset similarity index 100% rename from Assets/Unheimlich_POC/Datas/Camera/DetectiveBoardPanSettings.asset rename to Assets/Unheimlich_POC/Datas/Camera/Pans/DetectiveBoardPanSettings.asset diff --git a/Assets/Unheimlich_POC/Datas/Camera/DetectiveBoardPanSettings.asset.meta b/Assets/Unheimlich_POC/Datas/Camera/Pans/DetectiveBoardPanSettings.asset.meta similarity index 100% rename from Assets/Unheimlich_POC/Datas/Camera/DetectiveBoardPanSettings.asset.meta rename to Assets/Unheimlich_POC/Datas/Camera/Pans/DetectiveBoardPanSettings.asset.meta diff --git a/Assets/Unheimlich_POC/Datas/Camera/ListeningWallPanSettings.asset b/Assets/Unheimlich_POC/Datas/Camera/Pans/ListeningWallPanSettings.asset similarity index 100% rename from Assets/Unheimlich_POC/Datas/Camera/ListeningWallPanSettings.asset rename to Assets/Unheimlich_POC/Datas/Camera/Pans/ListeningWallPanSettings.asset diff --git a/Assets/Unheimlich_POC/Datas/Camera/ListeningWallPanSettings.asset.meta b/Assets/Unheimlich_POC/Datas/Camera/Pans/ListeningWallPanSettings.asset.meta similarity index 100% rename from Assets/Unheimlich_POC/Datas/Camera/ListeningWallPanSettings.asset.meta rename to Assets/Unheimlich_POC/Datas/Camera/Pans/ListeningWallPanSettings.asset.meta diff --git a/Assets/Unheimlich_POC/Datas/Camera/SlowInspectionPanSettings.asset b/Assets/Unheimlich_POC/Datas/Camera/Pans/SlowInspectionPanSettings.asset similarity index 100% rename from Assets/Unheimlich_POC/Datas/Camera/SlowInspectionPanSettings.asset rename to Assets/Unheimlich_POC/Datas/Camera/Pans/SlowInspectionPanSettings.asset diff --git a/Assets/Unheimlich_POC/Datas/Camera/SlowInspectionPanSettings.asset.meta b/Assets/Unheimlich_POC/Datas/Camera/Pans/SlowInspectionPanSettings.asset.meta similarity index 100% rename from Assets/Unheimlich_POC/Datas/Camera/SlowInspectionPanSettings.asset.meta rename to Assets/Unheimlich_POC/Datas/Camera/Pans/SlowInspectionPanSettings.asset.meta diff --git a/Assets/Unheimlich_POC/Datas/Camera/Settings.meta b/Assets/Unheimlich_POC/Datas/Camera/Settings.meta new file mode 100644 index 00000000..f82fb830 --- /dev/null +++ b/Assets/Unheimlich_POC/Datas/Camera/Settings.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8484eca66f8f05d4794aac4ff9bb8996 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Unheimlich_POC/Content/Gameplay/Characters/Player/V_Octocore/CamSettings.asset b/Assets/Unheimlich_POC/Datas/Camera/Settings/CamSettings.asset similarity index 100% rename from Assets/Unheimlich_POC/Content/Gameplay/Characters/Player/V_Octocore/CamSettings.asset rename to Assets/Unheimlich_POC/Datas/Camera/Settings/CamSettings.asset diff --git a/Assets/Unheimlich_POC/Content/Gameplay/Characters/Player/V_Octocore/CamSettings.asset.meta b/Assets/Unheimlich_POC/Datas/Camera/Settings/CamSettings.asset.meta similarity index 100% rename from Assets/Unheimlich_POC/Content/Gameplay/Characters/Player/V_Octocore/CamSettings.asset.meta rename to Assets/Unheimlich_POC/Datas/Camera/Settings/CamSettings.asset.meta diff --git a/Assets/Unheimlich_POC/Datas/DetectiveBoard/Clues.meta b/Assets/Unheimlich_POC/Datas/DetectiveBoard/Clues.meta new file mode 100644 index 00000000..fa2abe83 --- /dev/null +++ b/Assets/Unheimlich_POC/Datas/DetectiveBoard/Clues.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: dcf218691e25a7848a7bc4ea303abeeb +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Unheimlich_POC/Datas/DetectiveBoard/ExampleClue_LevitatingCube.asset b/Assets/Unheimlich_POC/Datas/DetectiveBoard/Clues/ExampleClue_LevitatingCube.asset similarity index 100% rename from Assets/Unheimlich_POC/Datas/DetectiveBoard/ExampleClue_LevitatingCube.asset rename to Assets/Unheimlich_POC/Datas/DetectiveBoard/Clues/ExampleClue_LevitatingCube.asset diff --git a/Assets/Unheimlich_POC/Datas/DetectiveBoard/ExampleClue_LevitatingCube.asset.meta b/Assets/Unheimlich_POC/Datas/DetectiveBoard/Clues/ExampleClue_LevitatingCube.asset.meta similarity index 100% rename from Assets/Unheimlich_POC/Datas/DetectiveBoard/ExampleClue_LevitatingCube.asset.meta rename to Assets/Unheimlich_POC/Datas/DetectiveBoard/Clues/ExampleClue_LevitatingCube.asset.meta diff --git a/Assets/Unheimlich_POC/Datas/DetectiveBoard/ExampleClue_PatientTestimony.asset b/Assets/Unheimlich_POC/Datas/DetectiveBoard/Clues/ExampleClue_PatientTestimony.asset similarity index 100% rename from Assets/Unheimlich_POC/Datas/DetectiveBoard/ExampleClue_PatientTestimony.asset rename to Assets/Unheimlich_POC/Datas/DetectiveBoard/Clues/ExampleClue_PatientTestimony.asset diff --git a/Assets/Unheimlich_POC/Datas/DetectiveBoard/ExampleClue_PatientTestimony.asset.meta b/Assets/Unheimlich_POC/Datas/DetectiveBoard/Clues/ExampleClue_PatientTestimony.asset.meta similarity index 100% rename from Assets/Unheimlich_POC/Datas/DetectiveBoard/ExampleClue_PatientTestimony.asset.meta rename to Assets/Unheimlich_POC/Datas/DetectiveBoard/Clues/ExampleClue_PatientTestimony.asset.meta diff --git a/Assets/Unheimlich_POC/Datas/DetectiveBoard/ExampleClue_StrangeSound.asset b/Assets/Unheimlich_POC/Datas/DetectiveBoard/Clues/ExampleClue_StrangeSound.asset similarity index 100% rename from Assets/Unheimlich_POC/Datas/DetectiveBoard/ExampleClue_StrangeSound.asset rename to Assets/Unheimlich_POC/Datas/DetectiveBoard/Clues/ExampleClue_StrangeSound.asset diff --git a/Assets/Unheimlich_POC/Datas/DetectiveBoard/ExampleClue_StrangeSound.asset.meta b/Assets/Unheimlich_POC/Datas/DetectiveBoard/Clues/ExampleClue_StrangeSound.asset.meta similarity index 100% rename from Assets/Unheimlich_POC/Datas/DetectiveBoard/ExampleClue_StrangeSound.asset.meta rename to Assets/Unheimlich_POC/Datas/DetectiveBoard/Clues/ExampleClue_StrangeSound.asset.meta diff --git a/Assets/Unheimlich_POC/Datas/DetectiveBoard/Settings.meta b/Assets/Unheimlich_POC/Datas/DetectiveBoard/Settings.meta new file mode 100644 index 00000000..4239224d --- /dev/null +++ b/Assets/Unheimlich_POC/Datas/DetectiveBoard/Settings.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7073d0f7ab262c14aad8f4b36590c806 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Unheimlich_POC/Datas/DetectiveBoard/DefaultDetectiveBoardSettings.asset b/Assets/Unheimlich_POC/Datas/DetectiveBoard/Settings/DefaultDetectiveBoardSettings.asset similarity index 100% rename from Assets/Unheimlich_POC/Datas/DetectiveBoard/DefaultDetectiveBoardSettings.asset rename to Assets/Unheimlich_POC/Datas/DetectiveBoard/Settings/DefaultDetectiveBoardSettings.asset diff --git a/Assets/Unheimlich_POC/Datas/DetectiveBoard/DefaultDetectiveBoardSettings.asset.meta b/Assets/Unheimlich_POC/Datas/DetectiveBoard/Settings/DefaultDetectiveBoardSettings.asset.meta similarity index 100% rename from Assets/Unheimlich_POC/Datas/DetectiveBoard/DefaultDetectiveBoardSettings.asset.meta rename to Assets/Unheimlich_POC/Datas/DetectiveBoard/Settings/DefaultDetectiveBoardSettings.asset.meta diff --git a/Assets/Unheimlich_POC/Scenes/MainScene/MainScene.unity b/Assets/Unheimlich_POC/Scenes/MainScene/MainScene.unity index 4fb8509f..75196bb0 100644 --- a/Assets/Unheimlich_POC/Scenes/MainScene/MainScene.unity +++ b/Assets/Unheimlich_POC/Scenes/MainScene/MainScene.unity @@ -266,11 +266,6 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: a6fb413fb2bce224e89bd24011beb66a, type: 3} ---- !u!4 &68298035 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 5600837329012510017, guid: 524ca0dabcf93844ea5f981410f44310, type: 3} - m_PrefabInstance: {fileID: 1569966199} - m_PrefabAsset: {fileID: 0} --- !u!1 &71310880 stripped GameObject: m_CorrespondingSourceObject: {fileID: 893980407258203480, guid: 69f9e42d2acbf0344981fcdffd02d588, type: 3} @@ -467,11 +462,6 @@ RectTransform: m_CorrespondingSourceObject: {fileID: 5831650301161165405, guid: 69f9e42d2acbf0344981fcdffd02d588, type: 3} m_PrefabInstance: {fileID: 102351984} m_PrefabAsset: {fileID: 0} ---- !u!4 &113699317 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4206463379806715489, guid: 524ca0dabcf93844ea5f981410f44310, type: 3} - m_PrefabInstance: {fileID: 1569966199} - m_PrefabAsset: {fileID: 0} --- !u!43 &183470776 Mesh: m_ObjectHideFlags: 0 @@ -955,63 +945,6 @@ MonoBehaviour: m_ShadowLayerMask: 1 m_RenderingLayers: 1 m_ShadowRenderingLayers: 1 ---- !u!1 &421186517 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 3452915509921429875, guid: 524ca0dabcf93844ea5f981410f44310, type: 3} - m_PrefabInstance: {fileID: 1569966199} - m_PrefabAsset: {fileID: 0} ---- !u!114 &421186520 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 421186517} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 97777a4e863d974428be79c0d8a40883, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::OctoIkArmsImproved - _leftArm: - Enabled: 1 - Arm: {fileID: 1146939765} - RotationOffset: {x: 0, y: 90, z: -15} - Raycasts: - - Root: {fileID: 1132572199} - Distance: 0.7 - - Root: {fileID: 68298035} - Distance: 0.5 - - Root: {fileID: 113699317} - Distance: 0.6 - TargetOriginPos: {x: 0, y: 0, z: 0} - TargetOriginRot: {x: 0, y: 0, z: 0, w: 0} - PoleOriginPos: {x: 0, y: 0, z: 0} - _rightArm: - Enabled: 1 - Arm: {fileID: 1630519643} - RotationOffset: {x: 0, y: 90, z: -195} - Raycasts: - - Root: {fileID: 916843296} - Distance: 0.7 - - Root: {fileID: 1131491878} - Distance: 0.5 - - Root: {fileID: 592552636} - Distance: 0.6 - TargetOriginPos: {x: 0, y: 0, z: 0} - TargetOriginRot: {x: 0, y: 0, z: 0, w: 0} - PoleOriginPos: {x: 0, y: 0, z: 0} - _settings: - LayerMask: - serializedVersion: 2 - m_Bits: 524288 - StickStartDistance: 0.8 - StickReleaseDistance: 1.2 - StickSpeed: 10 - ReleaseSpeed: 6 - RotationSpeed: 360 - AllowBothArms: 1 - MaxSurfaceAngle: 60 - StabilityFrames: 3 --- !u!1 &436513833 stripped GameObject: m_CorrespondingSourceObject: {fileID: 8565038221404453269, guid: 92d3cde0c88c75f48a98d082c573338b, type: 3} @@ -1485,11 +1418,6 @@ GameObject: m_CorrespondingSourceObject: {fileID: 2911834610010628020, guid: 92d3cde0c88c75f48a98d082c573338b, type: 3} m_PrefabInstance: {fileID: 5090177222934034458} m_PrefabAsset: {fileID: 0} ---- !u!4 &592552636 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 1836099041693630956, guid: 524ca0dabcf93844ea5f981410f44310, type: 3} - m_PrefabInstance: {fileID: 1569966199} - m_PrefabAsset: {fileID: 0} --- !u!43 &632997879 Mesh: m_ObjectHideFlags: 0 @@ -1839,11 +1767,6 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Assembly-CSharp::Unheimlich.Tools.LanguageSwitcher _currentLanguage: 1 ---- !u!4 &916843296 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 3379767859340007146, guid: 524ca0dabcf93844ea5f981410f44310, type: 3} - m_PrefabInstance: {fileID: 1569966199} - m_PrefabAsset: {fileID: 0} --- !u!1 &962945644 stripped GameObject: m_CorrespondingSourceObject: {fileID: 2846607907897423711, guid: 69f9e42d2acbf0344981fcdffd02d588, type: 3} @@ -1969,7 +1892,7 @@ PrefabInstance: objectReference: {fileID: 362502328} - target: {fileID: 8209576767969738346, guid: 20e4ea3ceee86dd4ba3881425b65790d, type: 3} propertyPath: m_VersionIndex - value: 5881 + value: 5884 objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] @@ -2040,27 +1963,6 @@ Transform: m_CorrespondingSourceObject: {fileID: 5383576672370031505, guid: 92d3cde0c88c75f48a98d082c573338b, type: 3} m_PrefabInstance: {fileID: 5090177222934034458} m_PrefabAsset: {fileID: 0} ---- !u!4 &1131491878 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 8991046984519786093, guid: 524ca0dabcf93844ea5f981410f44310, type: 3} - m_PrefabInstance: {fileID: 1569966199} - m_PrefabAsset: {fileID: 0} ---- !u!4 &1132572199 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 1650708088870299847, guid: 524ca0dabcf93844ea5f981410f44310, type: 3} - m_PrefabInstance: {fileID: 1569966199} - m_PrefabAsset: {fileID: 0} ---- !u!114 &1146939765 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 6654999116103601949, guid: 524ca0dabcf93844ea5f981410f44310, type: 3} - m_PrefabInstance: {fileID: 1569966199} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f5a9786856021274fbe10be8b0cef721, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::OctoIkLimb --- !u!224 &1182150969 stripped RectTransform: m_CorrespondingSourceObject: {fileID: 3296430617892173296, guid: 69f9e42d2acbf0344981fcdffd02d588, type: 3} @@ -2212,11 +2114,6 @@ RectTransform: m_CorrespondingSourceObject: {fileID: 8886833518829962744, guid: f6df2f5ea61cfcb439be39356b1560fa, type: 3} m_PrefabInstance: {fileID: 4079305652280607641} m_PrefabAsset: {fileID: 0} ---- !u!1 &1309830416 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 8162540767767967414, guid: 524ca0dabcf93844ea5f981410f44310, type: 3} - m_PrefabInstance: {fileID: 1569966199} - m_PrefabAsset: {fileID: 0} --- !u!1 &1310415455 GameObject: m_ObjectHideFlags: 0 @@ -2250,58 +2147,6 @@ Transform: - {fileID: 1254363909} m_Father: {fileID: 1976498063} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1311426603 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 2101508725665932610, guid: 524ca0dabcf93844ea5f981410f44310, type: 3} - m_PrefabInstance: {fileID: 1569966199} - m_PrefabAsset: {fileID: 0} ---- !u!114 &1311426609 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1311426603} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6ed4b22b4be6bbe49a67cbe552c633e1, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::Unheimlich.UI.DialogueBlurEffectURP - _globalVolume: {fileID: 832575518} - _gaussianStart: 0 - _gaussianEnd: 15 - _maxGaussianRadius: 4 - _startPostExposure: 0 - _targetPostExposure: 0.3 - _fadeDuration: 1 - _fadeCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 2 - outSlope: 2 - tangentMode: 0 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - _dialogueLayers: - serializedVersion: 2 - m_Bits: 64 - _autoCreateDialogueCamera: 1 --- !u!1 &1321496847 stripped GameObject: m_CorrespondingSourceObject: {fileID: 8240327778457960307, guid: 92d3cde0c88c75f48a98d082c573338b, type: 3} @@ -2807,61 +2652,45 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 1976498063} m_Modifications: - - target: {fileID: 1137016772337159218, guid: 524ca0dabcf93844ea5f981410f44310, type: 3} - propertyPath: m_LocalPosition.x - value: -0.1 + - target: {fileID: 147364745632062440, guid: 524ca0dabcf93844ea5f981410f44310, type: 3} + propertyPath: _rightArm.Equipment.TapStrikeDuration + value: 0.05 objectReference: {fileID: 0} - - target: {fileID: 1847598235320137047, guid: 524ca0dabcf93844ea5f981410f44310, type: 3} - propertyPath: m_LocalPosition.x - value: 0.1 + - target: {fileID: 147364745632062440, guid: 524ca0dabcf93844ea5f981410f44310, type: 3} + propertyPath: _rightArm.Equipment.TapWindupDuration + value: 0.18 objectReference: {fileID: 0} - - target: {fileID: 2525145087024189396, guid: 524ca0dabcf93844ea5f981410f44310, type: 3} - propertyPath: _touchDistance - value: 4 + - target: {fileID: 147364745632062440, guid: 524ca0dabcf93844ea5f981410f44310, type: 3} + propertyPath: _rightArm.Equipment.TapWindupRotation + value: 35 objectReference: {fileID: 0} - - target: {fileID: 2525145087024189396, guid: 524ca0dabcf93844ea5f981410f44310, type: 3} - propertyPath: _handTouchFeedback - value: - objectReference: {fileID: 1594544247} - - target: {fileID: 2525145087024189396, guid: 524ca0dabcf93844ea5f981410f44310, type: 3} - propertyPath: _listenableLayers.m_Bits - value: 524289 + - target: {fileID: 147364745632062440, guid: 524ca0dabcf93844ea5f981410f44310, type: 3} + propertyPath: _rightArm.Equipment.TapWristSnapRotation + value: 30 objectReference: {fileID: 0} - - target: {fileID: 3435910664558456817, guid: 524ca0dabcf93844ea5f981410f44310, type: 3} - propertyPath: m_Enabled - value: 0 + - target: {fileID: 738317799072394575, guid: 524ca0dabcf93844ea5f981410f44310, type: 3} + propertyPath: _vignetteIntensity + value: 0.3 objectReference: {fileID: 0} - - target: {fileID: 3522630547589622128, guid: 524ca0dabcf93844ea5f981410f44310, type: 3} - propertyPath: Settings - value: - objectReference: {fileID: 11400000, guid: 28f72f5bbd71f384a86c547567dbb5bf, type: 2} - target: {fileID: 3622123650942162330, guid: 524ca0dabcf93844ea5f981410f44310, type: 3} propertyPath: _listeningVolume value: objectReference: {fileID: 832575518} - - target: {fileID: 3666612565151794712, guid: 524ca0dabcf93844ea5f981410f44310, type: 3} - propertyPath: field of view - value: 60 - objectReference: {fileID: 0} - - target: {fileID: 6849123884232344894, guid: 524ca0dabcf93844ea5f981410f44310, type: 3} - propertyPath: _activationRange - value: 10 - objectReference: {fileID: 0} - - target: {fileID: 6989128982853398086, guid: 524ca0dabcf93844ea5f981410f44310, type: 3} - propertyPath: m_RenderPostProcessing - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 7525551330447586002, guid: 524ca0dabcf93844ea5f981410f44310, type: 3} - propertyPath: m_LocalPosition.x - value: -0.1 + - target: {fileID: 3622123650942162330, guid: 524ca0dabcf93844ea5f981410f44310, type: 3} + propertyPath: _targetIntensity + value: 0.1 objectReference: {fileID: 0} + - target: {fileID: 3700193918383472175, guid: 524ca0dabcf93844ea5f981410f44310, type: 3} + propertyPath: _globalVolume + value: + objectReference: {fileID: 832575518} - target: {fileID: 8162540767767967414, guid: 524ca0dabcf93844ea5f981410f44310, type: 3} propertyPath: m_Name value: OctoPlayerFP objectReference: {fileID: 0} - target: {fileID: 8725966219179855439, guid: 524ca0dabcf93844ea5f981410f44310, type: 3} propertyPath: m_LocalPosition.x - value: 20.9 + value: 20.6 objectReference: {fileID: 0} - target: {fileID: 8725966219179855439, guid: 524ca0dabcf93844ea5f981410f44310, type: 3} propertyPath: m_LocalPosition.y @@ -2869,7 +2698,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 8725966219179855439, guid: 524ca0dabcf93844ea5f981410f44310, type: 3} propertyPath: m_LocalPosition.z - value: 65.9 + value: 41.6 objectReference: {fileID: 0} - target: {fileID: 8725966219179855439, guid: 524ca0dabcf93844ea5f981410f44310, type: 3} propertyPath: m_LocalRotation.w @@ -2899,133 +2728,16 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 8933635129000347986, guid: 524ca0dabcf93844ea5f981410f44310, type: 3} - propertyPath: m_LocalPosition.x - value: 0.1 - objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] - m_AddedComponents: - - targetCorrespondingSourceObject: {fileID: 8162540767767967414, guid: 524ca0dabcf93844ea5f981410f44310, type: 3} - insertIndex: -1 - addedObject: {fileID: 1569966211} - - targetCorrespondingSourceObject: {fileID: 2101508725665932610, guid: 524ca0dabcf93844ea5f981410f44310, type: 3} - insertIndex: -1 - addedObject: {fileID: 1311426609} - - targetCorrespondingSourceObject: {fileID: 3452915509921429875, guid: 524ca0dabcf93844ea5f981410f44310, type: 3} - insertIndex: -1 - addedObject: {fileID: 421186520} + m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 524ca0dabcf93844ea5f981410f44310, type: 3} --- !u!4 &1569966200 stripped Transform: m_CorrespondingSourceObject: {fileID: 8725966219179855439, guid: 524ca0dabcf93844ea5f981410f44310, type: 3} m_PrefabInstance: {fileID: 1569966199} m_PrefabAsset: {fileID: 0} ---- !u!114 &1569966211 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1309830416} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d47a9ebc2bd5f9345ad873a400c3d8bf, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::Unheimlich.Gameplay.Player.Player ---- !u!1 &1594544247 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1594544248} - - component: {fileID: 1594544250} - - component: {fileID: 1594544249} - - component: {fileID: 1594544251} - m_Layer: 0 - m_Name: HandTouchFeedback - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1594544248 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1594544247} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1296540339} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -727, y: -296} - m_SizeDelta: {x: 100, y: 100} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1594544249 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1594544247} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1594544250 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1594544247} - m_CullTransparentMesh: 1 ---- !u!114 &1594544251 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1594544247} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 39b78978d656e894ea455342398ef8ba, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::Unheimlich.Gameplay.Player.HandTouchFeedback - _feedbackImage: {fileID: 1594544249} - _readyColor: {r: 0, g: 1, b: 0, a: 1} - _pulseSpeed: 2 - _pulseIntensity: 0.3 --- !u!1001 &1612978258 PrefabInstance: m_ObjectHideFlags: 0 @@ -3127,17 +2839,6 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 488e1a9d28c26ff4fbd783ca2843ceb4, type: 3} ---- !u!114 &1630519643 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 5109069407709118066, guid: 524ca0dabcf93844ea5f981410f44310, type: 3} - m_PrefabInstance: {fileID: 1569966199} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f5a9786856021274fbe10be8b0cef721, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::OctoIkLimb --- !u!1 &1693053744 GameObject: m_ObjectHideFlags: 0 @@ -5402,10 +5103,7 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] - m_AddedGameObjects: - - targetCorrespondingSourceObject: {fileID: 8886833518829962744, guid: f6df2f5ea61cfcb439be39356b1560fa, type: 3} - insertIndex: -1 - addedObject: {fileID: 1594544248} + m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: f6df2f5ea61cfcb439be39356b1560fa, type: 3} --- !u!1001 &5090177222934034458 @@ -5519,7 +5217,7 @@ PrefabInstance: - target: {fileID: 3142789394009655648, guid: 92d3cde0c88c75f48a98d082c573338b, type: 3} propertyPath: _handTouchFeedback value: - objectReference: {fileID: 1594544247} + objectReference: {fileID: 0} - target: {fileID: 3142789394009655648, guid: 92d3cde0c88c75f48a98d082c573338b, type: 3} propertyPath: _maxCameraPanAngle value: 8 diff --git a/Assets/Unheimlich_POC/Scripts/Gameplay/GameObjects/Player/DiapasonListeningHandlerV2.cs b/Assets/Unheimlich_POC/Scripts/Gameplay/GameObjects/Player/DiapasonListeningHandlerV2.cs new file mode 100644 index 00000000..089d8c98 --- /dev/null +++ b/Assets/Unheimlich_POC/Scripts/Gameplay/GameObjects/Player/DiapasonListeningHandlerV2.cs @@ -0,0 +1,229 @@ +using System.Collections; +using UnityEngine; +using Unheimlich.Audio; +using Unheimlich.Core; +using Unheimlich.Utility; +using Unheimlich.Gameplay.Player; +using Unheimlich.Gameplay.CameraControl; +using Unheimlich.Data.CameraSettings; +using InputManager = Unheimlich.Managers.InputManager; + +namespace Unheimlich.Gameplay.Player +{ + public class DiapasonListeningHandlerV2 : Singleton + { + [Header("Systems")] + [SerializeField] private DiapasonEquipmentManager _equipmentManager; + [SerializeField] private CameraPanController _cameraPanController; + + [Header("Settings")] + [SerializeField] private bool _disablePlayerMovementDuringListen = true; + [SerializeField] private bool _enablePanMode = true; + + [Header("Visual Feedback")] + [SerializeField] private float _vignetteIntensity = 0.5f; + [SerializeField] private ListeningVignetteEffect _vignetteEffect; + + [Header("Audio")] + [SerializeField] private AudioClip _breathInClip; + [SerializeField] [Range(0f, 1f)] private float _breathInVolume = 1f; + [SerializeField] private float _concentrationDuration = 1f; + [SerializeField] private float _breathInDuration = 0.5f; + + public bool IsListening { get; private set; } + public bool IsConcentrating { get; private set; } + + private AudioSource _playerAudioSource; + private Coroutine _listeningCoroutine; + private CameraHeadBob _cameraHeadBob; + private CameraPanSettings _originalCameraSettings; + private AudioListenable _lastDetectedEmitter; + private bool _isFadingOut; + + protected override void OnAwake() + { + _playerAudioSource = GetComponent(); + if (_playerAudioSource == null) + _playerAudioSource = gameObject.AddComponent(); + + if (_cameraPanController == null) + { + _cameraPanController = GetComponent(); + if (_cameraPanController == null) + { + Debug.LogWarning("[DiapasonV2] CameraPanController not found!"); + } + } + + if (_vignetteEffect == null) + { + _vignetteEffect = GetComponentInChildren(); + } + + _cameraHeadBob = GetComponentInChildren(); + + if (_equipmentManager != null) + { + SubscribeToEquipmentEvents(); + } + } + + void OnDestroy() + { + if (_equipmentManager != null) + { + UnsubscribeFromEquipmentEvents(); + } + } + + private void SubscribeToEquipmentEvents() + { + } + + private void UnsubscribeFromEquipmentEvents() + { + } + + void Update() + { + var diapasonAction = InputManager.GetDiapasonAction(); + if (diapasonAction != null && diapasonAction.WasPressedThisFrame()) + { + if (!IsListening && !IsConcentrating) + { + StartListeningMode(); + } + else if (IsListening || IsConcentrating) + { + StopListeningMode(); + } + } + + if (IsListening && _cameraPanController != null) + { + _cameraPanController.UpdatePan(); + } + } + + private void StartListeningMode() + { + if (_isFadingOut || _equipmentManager == null) + return; + + if (_listeningCoroutine != null) + StopCoroutine(_listeningCoroutine); + + _listeningCoroutine = StartCoroutine(ListeningSequence()); + } + + private IEnumerator ListeningSequence() + { + IsConcentrating = true; + InputManager.SetContext(InputManager.InputContext.Listening); + + if (_disablePlayerMovementDuringListen && PlayerController.Instance?.Movement != null) + { + PlayerController.Instance.Movement.enabled = false; + } + + _equipmentManager.EquipDiapason(); + + PlayBreathIn(); + yield return new WaitForSeconds(_breathInDuration); + + if (_cameraHeadBob != null) + { + float resetDuration = _concentrationDuration - _breathInDuration; + _cameraHeadBob.LerpToZero(resetDuration); + } + + yield return new WaitForSeconds(_concentrationDuration - _breathInDuration); + + IsConcentrating = false; + IsListening = true; + + EnableVignette(true); + + if (_enablePanMode && _cameraPanController != null) + { + _cameraPanController.SaveOriginalState(); + _cameraPanController.StartPan(); + } + + Cursor.lockState = CursorLockMode.Confined; + Cursor.visible = false; + } + + private void StopListeningMode() + { + if (_listeningCoroutine != null) + { + StopCoroutine(_listeningCoroutine); + _listeningCoroutine = null; + } + + IsListening = false; + IsConcentrating = false; + _isFadingOut = true; + + _equipmentManager.UnequipDiapason(); + + EnableVignette(false); + + if (_enablePanMode && _cameraPanController != null) + { + _cameraPanController.StopPan(); + _cameraPanController.ReturnToOriginalPosition(() => + { + if (_originalCameraSettings != null) + { + _cameraPanController.Settings = _originalCameraSettings; + _originalCameraSettings = null; + } + + if (_disablePlayerMovementDuringListen && PlayerController.Instance?.Movement != null) + { + PlayerController.Instance.Movement.enabled = true; + } + + _isFadingOut = false; + }); + } + else + { + if (_disablePlayerMovementDuringListen && PlayerController.Instance?.Movement != null) + { + PlayerController.Instance.Movement.enabled = true; + } + + _isFadingOut = false; + } + + InputManager.SetContext(InputManager.InputContext.Normal); + + Cursor.lockState = CursorLockMode.Locked; + Cursor.visible = false; + } + + private void PlayBreathIn() + { + if (_breathInClip != null && _playerAudioSource != null) + { + _playerAudioSource.PlayOneShot(_breathInClip, _breathInVolume); + } + } + + private void EnableVignette(bool enable) + { + if (_vignetteEffect == null) + return; + + if (enable) + { + _vignetteEffect.SetIntensity(_vignetteIntensity); + } + + _vignetteEffect.EnableVignette(enable); + } + } +} diff --git a/Assets/Unheimlich_POC/Scripts/Gameplay/GameObjects/Player/DiapasonListeningHandlerV2.cs.meta b/Assets/Unheimlich_POC/Scripts/Gameplay/GameObjects/Player/DiapasonListeningHandlerV2.cs.meta new file mode 100644 index 00000000..73084010 --- /dev/null +++ b/Assets/Unheimlich_POC/Scripts/Gameplay/GameObjects/Player/DiapasonListeningHandlerV2.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 46c1f473fbd3cac4397aabaa76d18357 \ No newline at end of file diff --git a/Assets/Unheimlich_POC/Scripts/Handlers/Interactions/FloatingWords/SketchFadeEffect.cs b/Assets/Unheimlich_POC/Scripts/Handlers/Interactions/FloatingWords/SketchFadeEffect.cs index 096c6464..7bdde86e 100644 --- a/Assets/Unheimlich_POC/Scripts/Handlers/Interactions/FloatingWords/SketchFadeEffect.cs +++ b/Assets/Unheimlich_POC/Scripts/Handlers/Interactions/FloatingWords/SketchFadeEffect.cs @@ -94,14 +94,13 @@ namespace Unheimlich.Interactions.FloatingWords _isEffectActive = true; - _scribbleTweenId = TweenHelper.AnimateMaterialFloat( - gameObject, - _scribbleMaterialInstance, - ProgressID, - 0f, - 1f, - scribbleDuration, - () => { + _scribbleTweenId = LeanTween.value(gameObject, 0f, 1f, scribbleDuration) + .setEase(LeanTweenType.easeInOutQuad) + .setOnUpdate((float val) => { + if (_scribbleMaterialInstance != null) + _scribbleMaterialInstance.SetFloat(ProgressID, val); + }) + .setOnComplete(() => { _scribbleTweenId = -1; float ghostAlphaRatio = _ghostTextComponent != null ? (_originalGhostColor.a / _originalTextColor.a) : 0f; @@ -126,63 +125,74 @@ namespace Unheimlich.Interactions.FloatingWords }) .setOnComplete(() => { _fadeTweenId = -1; + _isEffectActive = false; }).id; - }, - LeanTweenType.easeInOutQuad); + }).id; } public void ResetEffect() { + if (!_overlayCreated || _scribbleOverlay == null) + { + _isEffectActive = false; + return; + } + + bool overlayIsActive = _scribbleOverlay.gameObject.activeSelf; + + if (!overlayIsActive) + { + _isEffectActive = false; + return; + } + CancelActiveTweens(); + _isEffectActive = false; if (_scribbleMaterialInstance != null) { float currentProgress = _scribbleMaterialInstance.GetFloat(ProgressID); - if (currentProgress > 0f) - { - _scribbleTweenId = TweenHelper.AnimateMaterialFloat( - gameObject, - _scribbleMaterialInstance, - ProgressID, - currentProgress, - 0f, - 0.3f, - () => { - _scribbleTweenId = -1; - if (_scribbleOverlay != null) - _scribbleOverlay.gameObject.SetActive(false); - }, - LeanTweenType.easeOutQuad); - } + _scribbleTweenId = LeanTween.value(gameObject, currentProgress, 0f, 0.3f) + .setEase(LeanTweenType.easeOutQuad) + .setOnUpdate((float val) => { + if (_scribbleMaterialInstance != null) + _scribbleMaterialInstance.SetFloat(ProgressID, val); + }) + .setOnComplete(() => { + _scribbleTweenId = -1; + if (_scribbleOverlay != null) + _scribbleOverlay.gameObject.SetActive(false); + }).id; } if (_textComponent != null) { float currentAlpha = _textComponent.color.a; + float ghostAlphaRatio = _ghostTextComponent != null ? (_originalGhostColor.a / _originalTextColor.a) : 0f; - if (currentAlpha < _originalTextColor.a) - { - float ghostAlphaRatio = _ghostTextComponent != null ? (_originalGhostColor.a / _originalTextColor.a) : 0f; - - _fadeTweenId = TweenHelper.FadeText( - gameObject, - _textComponent, - _ghostTextComponent, - _originalTextColor.a, - 0.3f, - ghostAlphaRatio, - () => { _fadeTweenId = -1; }, - LeanTweenType.easeOutQuad); - } + _fadeTweenId = LeanTween.value(gameObject, currentAlpha, _originalTextColor.a, 0.3f) + .setEase(LeanTweenType.easeOutQuad) + .setOnUpdate((float val) => { + if (_textComponent != null) + { + _textComponent.color = _textComponent.color.WithAlpha(val); + } + + if (_ghostTextComponent != null) + { + _ghostTextComponent.color = _ghostTextComponent.color.WithAlpha(val * ghostAlphaRatio); + } + + if (_scribbleOverlay != null) + { + _scribbleOverlay.color = _scribbleOverlay.color.WithAlpha(val); + } + }) + .setOnComplete(() => { + _fadeTweenId = -1; + }).id; } - - if (_scribbleOverlay != null) - { - _scribbleOverlay.color = _scribbleOverlay.color.WithAlpha(1f); - } - - _isEffectActive = false; } private void CancelActiveTweens() diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset index 69e4acda..7930ef7d 100644 --- a/ProjectSettings/TagManager.asset +++ b/ProjectSettings/TagManager.asset @@ -14,7 +14,7 @@ TagManager: - Words - DetectiveBoard - Player - - + - Listenable - - -