Rework diapason with octo arms
This commit is contained in:
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 80d59ec0ac09852429c56ca6c42464c2
|
||||||
@@ -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<AudioListenable> OnEmitterDetected;
|
||||||
|
public event Action<AudioListenable> 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<OctoIkArmsImproved>();
|
||||||
|
if (_armsSystem == null)
|
||||||
|
{
|
||||||
|
Debug.LogError("[DiapasonEquipment] OctoIkArmsImproved not found!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_audioSource = GetComponent<AudioSource>();
|
||||||
|
if (_audioSource == null)
|
||||||
|
{
|
||||||
|
_audioSource = gameObject.AddComponent<AudioSource>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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<Animator>(true);
|
||||||
|
if (_diapasonAnimator == null)
|
||||||
|
{
|
||||||
|
Debug.LogWarning("[DiapasonEquipment] No Animator found on spawned diapason");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_diapasonAnimator.enabled = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
_diapasonParticles = _spawnedDiapason.GetComponentInChildren<ParticleSystem>(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<AudioListenable>();
|
||||||
|
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 38b80731eb88f834ab3d79a566e40b48
|
||||||
@@ -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();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9279e0fb73118d14ba6f2cf05170a660
|
||||||
@@ -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();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8d1a1f500877b404fa6d23dff3bfa8c8
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b46af809fa8f34d49b3dec606a505c5e
|
||||||
@@ -28,6 +28,9 @@ public class OctoIkArmsImproved : MonoBehaviour
|
|||||||
public Vector3 RotationOffset;
|
public Vector3 RotationOffset;
|
||||||
public RaycastRig[] Raycasts;
|
public RaycastRig[] Raycasts;
|
||||||
|
|
||||||
|
[Header("Equipment System")]
|
||||||
|
public ArmEquipment Equipment;
|
||||||
|
|
||||||
[HideInInspector] public Vector3 TargetOriginPos;
|
[HideInInspector] public Vector3 TargetOriginPos;
|
||||||
[HideInInspector] public Quaternion TargetOriginRot;
|
[HideInInspector] public Quaternion TargetOriginRot;
|
||||||
[HideInInspector] public Vector3 PoleOriginPos;
|
[HideInInspector] public Vector3 PoleOriginPos;
|
||||||
@@ -47,6 +50,27 @@ public class OctoIkArmsImproved : MonoBehaviour
|
|||||||
PoleOriginPos = Arm.Pole.localPosition;
|
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();
|
PerformRaycasts();
|
||||||
FindNearestHits();
|
FindNearestHits();
|
||||||
UpdateArmPositions();
|
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
|
// Cast all configured raycasts and store results
|
||||||
@@ -157,7 +194,7 @@ public class OctoIkArmsImproved : MonoBehaviour
|
|||||||
{
|
{
|
||||||
ArmRig armRig = _arms[i];
|
ArmRig armRig = _arms[i];
|
||||||
|
|
||||||
if (!armRig.Enabled || armRig.Raycasts == null)
|
if (!armRig.IsEnvironmentalIkActive() || armRig.Raycasts == null)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
for (int u = 0; u < armRig.Raycasts.Length; u++)
|
for (int u = 0; u < armRig.Raycasts.Length; u++)
|
||||||
@@ -248,23 +285,22 @@ public class OctoIkArmsImproved : MonoBehaviour
|
|||||||
ArmRig armRig = _arms[i];
|
ArmRig armRig = _arms[i];
|
||||||
if (armRig.Arm == null || armRig.Arm.Target == null) continue;
|
if (armRig.Arm == null || armRig.Arm.Target == null) continue;
|
||||||
|
|
||||||
|
if (!armRig.IsEnvironmentalIkActive())
|
||||||
|
continue;
|
||||||
|
|
||||||
RaycastInfos raycastInfos = _nearestHitRaycasts[i];
|
RaycastInfos raycastInfos = _nearestHitRaycasts[i];
|
||||||
|
|
||||||
// Default to origin position/rotation
|
|
||||||
Vector3 targetPos = armRig.TargetOriginPos;
|
Vector3 targetPos = armRig.TargetOriginPos;
|
||||||
Quaternion targetRot = armRig.TargetOriginRot;
|
Quaternion targetRot = armRig.TargetOriginRot;
|
||||||
|
|
||||||
bool shouldStick = false;
|
bool shouldStick = false;
|
||||||
|
|
||||||
// Check if we should stick to surface
|
|
||||||
if (raycastInfos.HasHit && _noHitFrameCount[i] < _settings.StabilityFrames)
|
if (raycastInfos.HasHit && _noHitFrameCount[i] < _settings.StabilityFrames)
|
||||||
{
|
{
|
||||||
if (IsValidSurface(raycastInfos, i))
|
if (IsValidSurface(raycastInfos, i))
|
||||||
{
|
{
|
||||||
// Calculate target position on surface
|
|
||||||
targetPos = armRig.Arm.Target.parent.InverseTransformPoint(raycastInfos.Position);
|
targetPos = armRig.Arm.Target.parent.InverseTransformPoint(raycastInfos.Position);
|
||||||
|
|
||||||
// Calculate target rotation aligned to surface
|
|
||||||
targetRot = Quaternion.LookRotation(
|
targetRot = Quaternion.LookRotation(
|
||||||
-armRig.Arm.Target.parent.InverseTransformDirection(raycastInfos.Normal),
|
-armRig.Arm.Target.parent.InverseTransformDirection(raycastInfos.Normal),
|
||||||
transform.up
|
transform.up
|
||||||
@@ -274,12 +310,10 @@ public class OctoIkArmsImproved : MonoBehaviour
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Smooth stickiness transition
|
|
||||||
float targetStickiness = shouldStick ? 1f : 0f;
|
float targetStickiness = shouldStick ? 1f : 0f;
|
||||||
float stickinessSpeed = shouldStick ? _settings.StickSpeed : _settings.ReleaseSpeed;
|
float stickinessSpeed = shouldStick ? _settings.StickSpeed : _settings.ReleaseSpeed;
|
||||||
_currentStickiness[i] = Mathf.MoveTowards(_currentStickiness[i], targetStickiness, stickinessSpeed * Time.deltaTime);
|
_currentStickiness[i] = Mathf.MoveTowards(_currentStickiness[i], targetStickiness, stickinessSpeed * Time.deltaTime);
|
||||||
|
|
||||||
// Apply distance-based stickiness factor (hysteresis)
|
|
||||||
float distanceFactor = 0f;
|
float distanceFactor = 0f;
|
||||||
if (shouldStick && raycastInfos.HasHit)
|
if (shouldStick && raycastInfos.HasHit)
|
||||||
{
|
{
|
||||||
@@ -287,17 +321,14 @@ public class OctoIkArmsImproved : MonoBehaviour
|
|||||||
distanceFactor = Mathf.Clamp01(distanceFactor);
|
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 posSpeed = Mathf.Lerp(_settings.ReleaseSpeed, _settings.StickSpeed, finalStickiness);
|
||||||
float rotSpeed = _settings.RotationSpeed * Mathf.Deg2Rad;
|
float rotSpeed = _settings.RotationSpeed * Mathf.Deg2Rad;
|
||||||
|
|
||||||
// Exponential smoothing for natural movement
|
|
||||||
float tPos = 1f - Mathf.Exp(-posSpeed * Time.deltaTime);
|
float tPos = 1f - Mathf.Exp(-posSpeed * Time.deltaTime);
|
||||||
float tRot = 1f - Mathf.Exp(-rotSpeed * 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.localPosition = Vector3.Lerp(armRig.Arm.Target.localPosition, targetPos, tPos);
|
||||||
armRig.Arm.Target.localRotation = Quaternion.Slerp(armRig.Arm.Target.localRotation, targetRot, tRot);
|
armRig.Arm.Target.localRotation = Quaternion.Slerp(armRig.Arm.Target.localRotation, targetRot, tRot);
|
||||||
}
|
}
|
||||||
@@ -327,4 +358,66 @@ public class OctoIkArmsImproved : MonoBehaviour
|
|||||||
|
|
||||||
return true;
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ GameObject:
|
|||||||
- component: {fileID: 3279932207826154136}
|
- component: {fileID: 3279932207826154136}
|
||||||
- component: {fileID: 1111284075867638658}
|
- component: {fileID: 1111284075867638658}
|
||||||
- component: {fileID: 6070160908100218527}
|
- component: {fileID: 6070160908100218527}
|
||||||
m_Layer: 0
|
m_Layer: 9
|
||||||
m_Name: Cube
|
m_Name: Cube
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
@@ -99,7 +99,7 @@ GameObject:
|
|||||||
serializedVersion: 6
|
serializedVersion: 6
|
||||||
m_Component:
|
m_Component:
|
||||||
- component: {fileID: 4721786510254652090}
|
- component: {fileID: 4721786510254652090}
|
||||||
m_Layer: 0
|
m_Layer: 9
|
||||||
m_Name: Render
|
m_Name: Render
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
@@ -133,7 +133,7 @@ GameObject:
|
|||||||
- component: {fileID: 5755410889840572423}
|
- component: {fileID: 5755410889840572423}
|
||||||
- component: {fileID: 196559139152754184}
|
- component: {fileID: 196559139152754184}
|
||||||
- component: {fileID: 7881895566796712951}
|
- component: {fileID: 7881895566796712951}
|
||||||
m_Layer: 0
|
m_Layer: 9
|
||||||
m_Name: SoundEmitter
|
m_Name: SoundEmitter
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
@@ -244,6 +244,10 @@ PrefabInstance:
|
|||||||
propertyPath: m_Name
|
propertyPath: m_Name
|
||||||
value: DiapasonParticles
|
value: DiapasonParticles
|
||||||
objectReference: {fileID: 0}
|
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}
|
- target: {fileID: 1134716054066844273, guid: 8bb34a961d0969644bdd7a29960b46c9, type: 3}
|
||||||
propertyPath: m_LocalScale.x
|
propertyPath: m_LocalScale.x
|
||||||
value: 5
|
value: 5
|
||||||
|
|||||||
+494
-162
@@ -31,6 +31,37 @@ Transform:
|
|||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 8725966219179855439}
|
m_Father: {fileID: 8725966219179855439}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
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
|
--- !u!1 &2101508725665932610
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -44,6 +75,7 @@ GameObject:
|
|||||||
- component: {fileID: 6053283114444666027}
|
- component: {fileID: 6053283114444666027}
|
||||||
- component: {fileID: 6989128982853398086}
|
- component: {fileID: 6989128982853398086}
|
||||||
- component: {fileID: 522399111239992785}
|
- component: {fileID: 522399111239992785}
|
||||||
|
- component: {fileID: 3700193918383472175}
|
||||||
m_Layer: 0
|
m_Layer: 0
|
||||||
m_Name: Camera Player
|
m_Name: Camera Player
|
||||||
m_TagString: MainCamera
|
m_TagString: MainCamera
|
||||||
@@ -99,7 +131,7 @@ Camera:
|
|||||||
height: 1
|
height: 1
|
||||||
near clip plane: 0.1
|
near clip plane: 0.1
|
||||||
far clip plane: 1000
|
far clip plane: 1000
|
||||||
field of view: 80
|
field of view: 60
|
||||||
orthographic: 0
|
orthographic: 0
|
||||||
orthographic size: 5
|
orthographic size: 5
|
||||||
m_Depth: 0
|
m_Depth: 0
|
||||||
@@ -148,7 +180,7 @@ MonoBehaviour:
|
|||||||
m_Bits: 1
|
m_Bits: 1
|
||||||
m_VolumeTrigger: {fileID: 0}
|
m_VolumeTrigger: {fileID: 0}
|
||||||
m_VolumeFrameworkUpdateModeOption: 2
|
m_VolumeFrameworkUpdateModeOption: 2
|
||||||
m_RenderPostProcessing: 0
|
m_RenderPostProcessing: 1
|
||||||
m_Antialiasing: 0
|
m_Antialiasing: 0
|
||||||
m_AntialiasingQuality: 2
|
m_AntialiasingQuality: 2
|
||||||
m_StopNaN: 0
|
m_StopNaN: 0
|
||||||
@@ -186,6 +218,84 @@ MonoBehaviour:
|
|||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_Bits: 8
|
m_Bits: 8
|
||||||
_raycastInterval: 0
|
_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
|
--- !u!1 &4625798697874999476
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -217,6 +327,37 @@ Transform:
|
|||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 4440040250278121308}
|
m_Father: {fileID: 4440040250278121308}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
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
|
--- !u!1 &5575782855984327677
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -249,7 +390,6 @@ Transform:
|
|||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 1836339402272228918}
|
- {fileID: 1836339402272228918}
|
||||||
- {fileID: 1175390396199967368}
|
- {fileID: 1175390396199967368}
|
||||||
- {fileID: 1104299543543969252}
|
|
||||||
m_Father: {fileID: 8725966219179855439}
|
m_Father: {fileID: 8725966219179855439}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!114 &986184075687059205
|
--- !u!114 &986184075687059205
|
||||||
@@ -278,11 +418,12 @@ GameObject:
|
|||||||
- component: {fileID: 688176918831081180}
|
- component: {fileID: 688176918831081180}
|
||||||
- component: {fileID: 3522630547589622128}
|
- component: {fileID: 3522630547589622128}
|
||||||
- component: {fileID: 493263706218074437}
|
- component: {fileID: 493263706218074437}
|
||||||
- component: {fileID: 2525145087024189396}
|
- component: {fileID: 738317799072394575}
|
||||||
- component: {fileID: 3622123650942162330}
|
- component: {fileID: 3622123650942162330}
|
||||||
- component: {fileID: 4152409555847978467}
|
- component: {fileID: 4152409555847978467}
|
||||||
- component: {fileID: 6849123884232344894}
|
- component: {fileID: 6849123884232344894}
|
||||||
- component: {fileID: 4281753130586762125}
|
- component: {fileID: 663333287375164531}
|
||||||
|
- component: {fileID: 2301728592307354479}
|
||||||
m_Layer: 0
|
m_Layer: 0
|
||||||
m_Name: OctoPlayerFP
|
m_Name: OctoPlayerFP
|
||||||
m_TagString: Player
|
m_TagString: Player
|
||||||
@@ -390,7 +531,7 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: e05e5ee4f09d55d4a93324fe0eb85d6e, type: 3}
|
m_Script: {fileID: 11500000, guid: e05e5ee4f09d55d4a93324fe0eb85d6e, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier: Assembly-CSharp::Unheimlich.Gameplay.Player.CameraEffects
|
m_EditorClassIdentifier: Assembly-CSharp::Unheimlich.Gameplay.Player.CameraEffects
|
||||||
Settings: {fileID: 0}
|
Settings: {fileID: 11400000, guid: 28f72f5bbd71f384a86c547567dbb5bf, type: 2}
|
||||||
--- !u!114 &493263706218074437
|
--- !u!114 &493263706218074437
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -404,7 +545,7 @@ MonoBehaviour:
|
|||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier: Assembly-CSharp::Unheimlich.Gameplay.CameraControl.CameraPanController
|
m_EditorClassIdentifier: Assembly-CSharp::Unheimlich.Gameplay.CameraControl.CameraPanController
|
||||||
_defaultSettings: {fileID: 11400000, guid: 9973a518f73c3c1489819494e37d0980, type: 2}
|
_defaultSettings: {fileID: 11400000, guid: 9973a518f73c3c1489819494e37d0980, type: 2}
|
||||||
--- !u!114 &2525145087024189396
|
--- !u!114 &738317799072394575
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
@@ -413,54 +554,19 @@ MonoBehaviour:
|
|||||||
m_GameObject: {fileID: 8162540767767967414}
|
m_GameObject: {fileID: 8162540767767967414}
|
||||||
m_Enabled: 1
|
m_Enabled: 1
|
||||||
m_EditorHideFlags: 0
|
m_EditorHideFlags: 0
|
||||||
m_Script: {fileID: 11500000, guid: 2094bd9c6f72e5b4cadf430f4d70f8f6, type: 3}
|
m_Script: {fileID: 11500000, guid: 46c1f473fbd3cac4397aabaa76d18357, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier: Assembly-CSharp::Unheimlich.Gameplay.Player.DiapasonListeningHandler
|
m_EditorClassIdentifier: Assembly-CSharp::Unheimlich.Gameplay.Player.DiapasonListeningHandlerV2
|
||||||
_diapasonObject: {fileID: 4171827204873703387}
|
_equipmentManager: {fileID: 2301728592307354479}
|
||||||
_diapasonAnimator: {fileID: 2521987284762225689}
|
_cameraPanController: {fileID: 493263706218074437}
|
||||||
_listeningRange: 5
|
_disablePlayerMovementDuringListen: 1
|
||||||
_listenableLayers:
|
_enablePanMode: 1
|
||||||
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
|
|
||||||
_vignetteIntensity: 0.5
|
_vignetteIntensity: 0.5
|
||||||
_vignetteEffect: {fileID: 3622123650942162330}
|
_vignetteEffect: {fileID: 3622123650942162330}
|
||||||
_handTouchFeedback: {fileID: 0}
|
|
||||||
_diapasonParticles: {fileID: 8433960879374805761}
|
|
||||||
_breathInClip: {fileID: 8300000, guid: 091b6df1c99cbd647bce921a5ba7c1af, type: 3}
|
_breathInClip: {fileID: 8300000, guid: 091b6df1c99cbd647bce921a5ba7c1af, type: 3}
|
||||||
_diapasonTapClip: {fileID: 8300000, guid: 99100d62c8b5d264f8694516673a9eeb, type: 3}
|
_breathInVolume: 1
|
||||||
_diapasonTapVolume: 0.3
|
_concentrationDuration: 1
|
||||||
_ambientAttenuationAmount: 0.3
|
_breathInDuration: 0.5
|
||||||
_audioFadeDuration: 0.5
|
|
||||||
_touchDistance: 2
|
|
||||||
--- !u!114 &3622123650942162330
|
--- !u!114 &3622123650942162330
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -502,11 +608,11 @@ MonoBehaviour:
|
|||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier: Assembly-CSharp::Unheimlich.Gameplay.DetectiveBoard.DetectiveBoardController
|
m_EditorClassIdentifier: Assembly-CSharp::Unheimlich.Gameplay.DetectiveBoard.DetectiveBoardController
|
||||||
_boardCameraPanSettings: {fileID: 11400000, guid: f176d1f8c15496946994170f1b633061, type: 2}
|
_boardCameraPanSettings: {fileID: 11400000, guid: f176d1f8c15496946994170f1b633061, type: 2}
|
||||||
_activationRange: 2
|
_activationRange: 10
|
||||||
_boardLayer:
|
_boardLayer:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_Bits: 128
|
m_Bits: 128
|
||||||
--- !u!114 &4281753130586762125
|
--- !u!114 &663333287375164531
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
@@ -515,13 +621,69 @@ MonoBehaviour:
|
|||||||
m_GameObject: {fileID: 8162540767767967414}
|
m_GameObject: {fileID: 8162540767767967414}
|
||||||
m_Enabled: 1
|
m_Enabled: 1
|
||||||
m_EditorHideFlags: 0
|
m_EditorHideFlags: 0
|
||||||
m_Script: {fileID: 11500000, guid: 39b78978d656e894ea455342398ef8ba, type: 3}
|
m_Script: {fileID: 11500000, guid: d47a9ebc2bd5f9345ad873a400c3d8bf, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier: Assembly-CSharp::Unheimlich.Gameplay.Player.HandTouchFeedback
|
m_EditorClassIdentifier: Assembly-CSharp::Unheimlich.Gameplay.Player.Player
|
||||||
_feedbackImage: {fileID: 0}
|
--- !u!114 &2301728592307354479
|
||||||
_readyColor: {r: 0, g: 1, b: 0, a: 1}
|
MonoBehaviour:
|
||||||
_pulseSpeed: 2
|
m_ObjectHideFlags: 0
|
||||||
_pulseIntensity: 0.3
|
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
|
--- !u!1001 &2564566619627430770
|
||||||
PrefabInstance:
|
PrefabInstance:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -570,6 +732,10 @@ PrefabInstance:
|
|||||||
propertyPath: m_LocalEulerAnglesHint.z
|
propertyPath: m_LocalEulerAnglesHint.z
|
||||||
value: 0
|
value: 0
|
||||||
objectReference: {fileID: 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}
|
- target: {fileID: 880987313172909187, guid: 73480b78f75094a4da6b76dedb392ae9, type: 3}
|
||||||
propertyPath: _leftArm.RotationOffset.x
|
propertyPath: _leftArm.RotationOffset.x
|
||||||
value: 0
|
value: 0
|
||||||
@@ -578,6 +744,10 @@ PrefabInstance:
|
|||||||
propertyPath: _rightArm.RotationOffset.x
|
propertyPath: _rightArm.RotationOffset.x
|
||||||
value: 0
|
value: 0
|
||||||
objectReference: {fileID: 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}
|
- target: {fileID: 899615586671794689, guid: 73480b78f75094a4da6b76dedb392ae9, type: 3}
|
||||||
propertyPath: m_Name
|
propertyPath: m_Name
|
||||||
value: Arms
|
value: Arms
|
||||||
@@ -622,6 +792,14 @@ PrefabInstance:
|
|||||||
propertyPath: m_LocalEulerAnglesHint.z
|
propertyPath: m_LocalEulerAnglesHint.z
|
||||||
value: 53.364
|
value: 53.364
|
||||||
objectReference: {fileID: 0}
|
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}
|
- target: {fileID: 2656140929319940858, guid: 73480b78f75094a4da6b76dedb392ae9, type: 3}
|
||||||
propertyPath: m_LocalRotation.w
|
propertyPath: m_LocalRotation.w
|
||||||
value: 0.9961947
|
value: 0.9961947
|
||||||
@@ -846,118 +1024,272 @@ PrefabInstance:
|
|||||||
propertyPath: m_LocalEulerAnglesHint.y
|
propertyPath: m_LocalEulerAnglesHint.y
|
||||||
value: -30
|
value: -30
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
m_RemovedComponents: []
|
m_RemovedComponents:
|
||||||
|
- {fileID: 880987313172909187, guid: 73480b78f75094a4da6b76dedb392ae9, type: 3}
|
||||||
m_RemovedGameObjects: []
|
m_RemovedGameObjects: []
|
||||||
m_AddedGameObjects: []
|
m_AddedGameObjects:
|
||||||
m_AddedComponents: []
|
- 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}
|
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
|
--- !u!4 &2639365499984405449 stripped
|
||||||
Transform:
|
Transform:
|
||||||
m_CorrespondingSourceObject: {fileID: 520098895314436283, guid: 73480b78f75094a4da6b76dedb392ae9, type: 3}
|
m_CorrespondingSourceObject: {fileID: 520098895314436283, guid: 73480b78f75094a4da6b76dedb392ae9, type: 3}
|
||||||
m_PrefabInstance: {fileID: 2564566619627430770}
|
m_PrefabInstance: {fileID: 2564566619627430770}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
--- !u!1001 &4716067031739800990
|
--- !u!4 &3379767859340007146 stripped
|
||||||
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
|
|
||||||
Transform:
|
Transform:
|
||||||
m_CorrespondingSourceObject: {fileID: 5629947512209565818, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3}
|
m_CorrespondingSourceObject: {fileID: 968400598511252888, guid: 73480b78f75094a4da6b76dedb392ae9, type: 3}
|
||||||
m_PrefabInstance: {fileID: 4716067031739800990}
|
m_PrefabInstance: {fileID: 2564566619627430770}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
--- !u!95 &2521987284762225689 stripped
|
--- !u!1 &3452915509921429875 stripped
|
||||||
Animator:
|
|
||||||
m_CorrespondingSourceObject: {fileID: 7173446854330675591, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3}
|
|
||||||
m_PrefabInstance: {fileID: 4716067031739800990}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
--- !u!1 &4171827204873703387 stripped
|
|
||||||
GameObject:
|
GameObject:
|
||||||
m_CorrespondingSourceObject: {fileID: 8689584738786529861, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3}
|
m_CorrespondingSourceObject: {fileID: 899615586671794689, guid: 73480b78f75094a4da6b76dedb392ae9, type: 3}
|
||||||
m_PrefabInstance: {fileID: 4716067031739800990}
|
m_PrefabInstance: {fileID: 2564566619627430770}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
--- !u!198 &8433960879374805761 stripped
|
--- !u!114 &147364745632062440
|
||||||
ParticleSystem:
|
MonoBehaviour:
|
||||||
m_CorrespondingSourceObject: {fileID: 3781237283850892959, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3}
|
m_ObjectHideFlags: 0
|
||||||
m_PrefabInstance: {fileID: 4716067031739800990}
|
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}
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ AnimationClip:
|
|||||||
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||||
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||||
- serializedVersion: 3
|
- serializedVersion: 3
|
||||||
time: 0.43333334
|
time: 0.11666667
|
||||||
value: {x: -62.351, y: 89.774, z: -89.911}
|
value: {x: -62.351, y: 89.774, z: -89.911}
|
||||||
inSlope: {x: 0, y: 0, z: 0}
|
inSlope: {x: 0, y: 0, z: 0}
|
||||||
outSlope: {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}
|
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||||
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||||
- serializedVersion: 3
|
- serializedVersion: 3
|
||||||
time: 0.78333336
|
time: 0.15
|
||||||
value: {x: -90, y: 0, z: 0}
|
value: {x: -90, y: 0, z: 0}
|
||||||
inSlope: {x: 0, y: 0, z: 0}
|
inSlope: {x: 0, y: 0, z: 0}
|
||||||
outSlope: {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}
|
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||||
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||||
- serializedVersion: 3
|
- serializedVersion: 3
|
||||||
time: 0.23333333
|
time: 0.06666667
|
||||||
value: {x: 0, y: 0.055, z: 0}
|
value: {x: 0, y: 0.055, z: 0}
|
||||||
inSlope: {x: 0, y: 0.23769715, z: 0}
|
inSlope: {x: 0, y: 0.88287514, z: 0}
|
||||||
outSlope: {x: 0, y: 0.23769715, z: 0}
|
outSlope: {x: 0, y: 0.88287514, z: 0}
|
||||||
tangentMode: 0
|
tangentMode: 0
|
||||||
weightedMode: 0
|
weightedMode: 0
|
||||||
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||||
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||||
- serializedVersion: 3
|
- serializedVersion: 3
|
||||||
time: 0.43333334
|
time: 0.11666667
|
||||||
value: {x: 0.053, y: 0.1030021, z: 0}
|
value: {x: 0.053, y: 0.1030021, z: 0}
|
||||||
inSlope: {x: 0, y: 0, z: 0}
|
inSlope: {x: 0, y: 0, z: 0}
|
||||||
outSlope: {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}
|
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||||
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||||
- serializedVersion: 3
|
- serializedVersion: 3
|
||||||
time: 0.78333336
|
time: 0.15
|
||||||
value: {x: 0, y: 0, z: 0}
|
value: {x: 0, y: 0, z: 0}
|
||||||
inSlope: {x: 0, y: 0, z: 0}
|
inSlope: {x: 0, y: 0, z: 0}
|
||||||
outSlope: {x: 0, y: 0, z: 0}
|
outSlope: {x: 0, y: 0, z: 0}
|
||||||
@@ -126,7 +126,7 @@ AnimationClip:
|
|||||||
m_AdditiveReferencePoseClip: {fileID: 0}
|
m_AdditiveReferencePoseClip: {fileID: 0}
|
||||||
m_AdditiveReferencePoseTime: 0
|
m_AdditiveReferencePoseTime: 0
|
||||||
m_StartTime: 0
|
m_StartTime: 0
|
||||||
m_StopTime: 0.78333336
|
m_StopTime: 0.15
|
||||||
m_OrientationOffsetY: 0
|
m_OrientationOffsetY: 0
|
||||||
m_Level: 0
|
m_Level: 0
|
||||||
m_CycleOffset: 0
|
m_CycleOffset: 0
|
||||||
@@ -156,7 +156,7 @@ AnimationClip:
|
|||||||
inWeight: 0.33333334
|
inWeight: 0.33333334
|
||||||
outWeight: 0.33333334
|
outWeight: 0.33333334
|
||||||
- serializedVersion: 3
|
- serializedVersion: 3
|
||||||
time: 0.23333333
|
time: 0.06666667
|
||||||
value: 0
|
value: 0
|
||||||
inSlope: 0
|
inSlope: 0
|
||||||
outSlope: 0
|
outSlope: 0
|
||||||
@@ -165,7 +165,7 @@ AnimationClip:
|
|||||||
inWeight: 0.33333334
|
inWeight: 0.33333334
|
||||||
outWeight: 0.33333334
|
outWeight: 0.33333334
|
||||||
- serializedVersion: 3
|
- serializedVersion: 3
|
||||||
time: 0.43333334
|
time: 0.11666667
|
||||||
value: 0.053
|
value: 0.053
|
||||||
inSlope: 0
|
inSlope: 0
|
||||||
outSlope: 0
|
outSlope: 0
|
||||||
@@ -174,7 +174,7 @@ AnimationClip:
|
|||||||
inWeight: 0.33333334
|
inWeight: 0.33333334
|
||||||
outWeight: 0.33333334
|
outWeight: 0.33333334
|
||||||
- serializedVersion: 3
|
- serializedVersion: 3
|
||||||
time: 0.78333336
|
time: 0.15
|
||||||
value: 0
|
value: 0
|
||||||
inSlope: 0
|
inSlope: 0
|
||||||
outSlope: 0
|
outSlope: 0
|
||||||
@@ -204,16 +204,16 @@ AnimationClip:
|
|||||||
inWeight: 0.33333334
|
inWeight: 0.33333334
|
||||||
outWeight: 0.33333334
|
outWeight: 0.33333334
|
||||||
- serializedVersion: 3
|
- serializedVersion: 3
|
||||||
time: 0.23333333
|
time: 0.06666667
|
||||||
value: 0.055
|
value: 0.055
|
||||||
inSlope: 0.23769715
|
inSlope: 0.88287514
|
||||||
outSlope: 0.23769715
|
outSlope: 0.88287514
|
||||||
tangentMode: 136
|
tangentMode: 136
|
||||||
weightedMode: 0
|
weightedMode: 0
|
||||||
inWeight: 0.33333334
|
inWeight: 0.33333334
|
||||||
outWeight: 0.33333334
|
outWeight: 0.33333334
|
||||||
- serializedVersion: 3
|
- serializedVersion: 3
|
||||||
time: 0.43333334
|
time: 0.11666667
|
||||||
value: 0.1030021
|
value: 0.1030021
|
||||||
inSlope: 0
|
inSlope: 0
|
||||||
outSlope: 0
|
outSlope: 0
|
||||||
@@ -222,7 +222,7 @@ AnimationClip:
|
|||||||
inWeight: 0.33333334
|
inWeight: 0.33333334
|
||||||
outWeight: 0.33333334
|
outWeight: 0.33333334
|
||||||
- serializedVersion: 3
|
- serializedVersion: 3
|
||||||
time: 0.78333336
|
time: 0.15
|
||||||
value: 0
|
value: 0
|
||||||
inSlope: 0
|
inSlope: 0
|
||||||
outSlope: 0
|
outSlope: 0
|
||||||
@@ -252,7 +252,7 @@ AnimationClip:
|
|||||||
inWeight: 0.33333334
|
inWeight: 0.33333334
|
||||||
outWeight: 0.33333334
|
outWeight: 0.33333334
|
||||||
- serializedVersion: 3
|
- serializedVersion: 3
|
||||||
time: 0.23333333
|
time: 0.06666667
|
||||||
value: 0
|
value: 0
|
||||||
inSlope: 0
|
inSlope: 0
|
||||||
outSlope: 0
|
outSlope: 0
|
||||||
@@ -261,7 +261,7 @@ AnimationClip:
|
|||||||
inWeight: 0.33333334
|
inWeight: 0.33333334
|
||||||
outWeight: 0.33333334
|
outWeight: 0.33333334
|
||||||
- serializedVersion: 3
|
- serializedVersion: 3
|
||||||
time: 0.43333334
|
time: 0.11666667
|
||||||
value: 0
|
value: 0
|
||||||
inSlope: 0
|
inSlope: 0
|
||||||
outSlope: 0
|
outSlope: 0
|
||||||
@@ -270,7 +270,7 @@ AnimationClip:
|
|||||||
inWeight: 0.33333334
|
inWeight: 0.33333334
|
||||||
outWeight: 0.33333334
|
outWeight: 0.33333334
|
||||||
- serializedVersion: 3
|
- serializedVersion: 3
|
||||||
time: 0.78333336
|
time: 0.15
|
||||||
value: 0
|
value: 0
|
||||||
inSlope: 0
|
inSlope: 0
|
||||||
outSlope: 0
|
outSlope: 0
|
||||||
@@ -300,7 +300,7 @@ AnimationClip:
|
|||||||
inWeight: 0.33333334
|
inWeight: 0.33333334
|
||||||
outWeight: 0.33333334
|
outWeight: 0.33333334
|
||||||
- serializedVersion: 3
|
- serializedVersion: 3
|
||||||
time: 0.43333334
|
time: 0.11666667
|
||||||
value: -62.351
|
value: -62.351
|
||||||
inSlope: 0
|
inSlope: 0
|
||||||
outSlope: 0
|
outSlope: 0
|
||||||
@@ -309,7 +309,7 @@ AnimationClip:
|
|||||||
inWeight: 0.33333334
|
inWeight: 0.33333334
|
||||||
outWeight: 0.33333334
|
outWeight: 0.33333334
|
||||||
- serializedVersion: 3
|
- serializedVersion: 3
|
||||||
time: 0.78333336
|
time: 0.15
|
||||||
value: -90
|
value: -90
|
||||||
inSlope: 0
|
inSlope: 0
|
||||||
outSlope: 0
|
outSlope: 0
|
||||||
@@ -339,7 +339,7 @@ AnimationClip:
|
|||||||
inWeight: 0.33333334
|
inWeight: 0.33333334
|
||||||
outWeight: 0.33333334
|
outWeight: 0.33333334
|
||||||
- serializedVersion: 3
|
- serializedVersion: 3
|
||||||
time: 0.43333334
|
time: 0.11666667
|
||||||
value: 89.774
|
value: 89.774
|
||||||
inSlope: 0
|
inSlope: 0
|
||||||
outSlope: 0
|
outSlope: 0
|
||||||
@@ -348,7 +348,7 @@ AnimationClip:
|
|||||||
inWeight: 0.33333334
|
inWeight: 0.33333334
|
||||||
outWeight: 0.33333334
|
outWeight: 0.33333334
|
||||||
- serializedVersion: 3
|
- serializedVersion: 3
|
||||||
time: 0.78333336
|
time: 0.15
|
||||||
value: 0
|
value: 0
|
||||||
inSlope: 0
|
inSlope: 0
|
||||||
outSlope: 0
|
outSlope: 0
|
||||||
@@ -378,7 +378,7 @@ AnimationClip:
|
|||||||
inWeight: 0.33333334
|
inWeight: 0.33333334
|
||||||
outWeight: 0.33333334
|
outWeight: 0.33333334
|
||||||
- serializedVersion: 3
|
- serializedVersion: 3
|
||||||
time: 0.43333334
|
time: 0.11666667
|
||||||
value: -89.911
|
value: -89.911
|
||||||
inSlope: 0
|
inSlope: 0
|
||||||
outSlope: 0
|
outSlope: 0
|
||||||
@@ -387,7 +387,7 @@ AnimationClip:
|
|||||||
inWeight: 0.33333334
|
inWeight: 0.33333334
|
||||||
outWeight: 0.33333334
|
outWeight: 0.33333334
|
||||||
- serializedVersion: 3
|
- serializedVersion: 3
|
||||||
time: 0.78333336
|
time: 0.15
|
||||||
value: 0
|
value: 0
|
||||||
inSlope: 0
|
inSlope: 0
|
||||||
outSlope: 0
|
outSlope: 0
|
||||||
|
|||||||
@@ -56,14 +56,14 @@ Transform:
|
|||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 2804686510863457871}
|
m_GameObject: {fileID: 2804686510863457871}
|
||||||
serializedVersion: 2
|
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_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_ConstrainProportionsScale: 0
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 6952011244025097897}
|
- {fileID: 6952011244025097897}
|
||||||
m_Father: {fileID: 5629947512209565818}
|
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
|
--- !u!1 &5030950371277861040
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -182,8 +182,8 @@ Transform:
|
|||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 0.35, y: 0.35, z: 0.35}
|
||||||
m_ConstrainProportionsScale: 0
|
m_ConstrainProportionsScale: 1
|
||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 2315210776226997430}
|
- {fileID: 2315210776226997430}
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9df0cb56bbf72da4d8867c0762b21056
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5564aaa81c1b4d24eb35804793f8b916
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1c1241bed4f53a847b58c99c7d2bca65
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8484eca66f8f05d4794aac4ff9bb8996
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: dcf218691e25a7848a7bc4ea303abeeb
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 7073d0f7ab262c14aad8f4b36590c806
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -266,11 +266,6 @@ PrefabInstance:
|
|||||||
m_AddedGameObjects: []
|
m_AddedGameObjects: []
|
||||||
m_AddedComponents: []
|
m_AddedComponents: []
|
||||||
m_SourcePrefab: {fileID: 100100000, guid: a6fb413fb2bce224e89bd24011beb66a, type: 3}
|
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
|
--- !u!1 &71310880 stripped
|
||||||
GameObject:
|
GameObject:
|
||||||
m_CorrespondingSourceObject: {fileID: 893980407258203480, guid: 69f9e42d2acbf0344981fcdffd02d588, type: 3}
|
m_CorrespondingSourceObject: {fileID: 893980407258203480, guid: 69f9e42d2acbf0344981fcdffd02d588, type: 3}
|
||||||
@@ -467,11 +462,6 @@ RectTransform:
|
|||||||
m_CorrespondingSourceObject: {fileID: 5831650301161165405, guid: 69f9e42d2acbf0344981fcdffd02d588, type: 3}
|
m_CorrespondingSourceObject: {fileID: 5831650301161165405, guid: 69f9e42d2acbf0344981fcdffd02d588, type: 3}
|
||||||
m_PrefabInstance: {fileID: 102351984}
|
m_PrefabInstance: {fileID: 102351984}
|
||||||
m_PrefabAsset: {fileID: 0}
|
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
|
--- !u!43 &183470776
|
||||||
Mesh:
|
Mesh:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -955,63 +945,6 @@ MonoBehaviour:
|
|||||||
m_ShadowLayerMask: 1
|
m_ShadowLayerMask: 1
|
||||||
m_RenderingLayers: 1
|
m_RenderingLayers: 1
|
||||||
m_ShadowRenderingLayers: 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
|
--- !u!1 &436513833 stripped
|
||||||
GameObject:
|
GameObject:
|
||||||
m_CorrespondingSourceObject: {fileID: 8565038221404453269, guid: 92d3cde0c88c75f48a98d082c573338b, type: 3}
|
m_CorrespondingSourceObject: {fileID: 8565038221404453269, guid: 92d3cde0c88c75f48a98d082c573338b, type: 3}
|
||||||
@@ -1485,11 +1418,6 @@ GameObject:
|
|||||||
m_CorrespondingSourceObject: {fileID: 2911834610010628020, guid: 92d3cde0c88c75f48a98d082c573338b, type: 3}
|
m_CorrespondingSourceObject: {fileID: 2911834610010628020, guid: 92d3cde0c88c75f48a98d082c573338b, type: 3}
|
||||||
m_PrefabInstance: {fileID: 5090177222934034458}
|
m_PrefabInstance: {fileID: 5090177222934034458}
|
||||||
m_PrefabAsset: {fileID: 0}
|
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
|
--- !u!43 &632997879
|
||||||
Mesh:
|
Mesh:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -1839,11 +1767,6 @@ MonoBehaviour:
|
|||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier: Assembly-CSharp::Unheimlich.Tools.LanguageSwitcher
|
m_EditorClassIdentifier: Assembly-CSharp::Unheimlich.Tools.LanguageSwitcher
|
||||||
_currentLanguage: 1
|
_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
|
--- !u!1 &962945644 stripped
|
||||||
GameObject:
|
GameObject:
|
||||||
m_CorrespondingSourceObject: {fileID: 2846607907897423711, guid: 69f9e42d2acbf0344981fcdffd02d588, type: 3}
|
m_CorrespondingSourceObject: {fileID: 2846607907897423711, guid: 69f9e42d2acbf0344981fcdffd02d588, type: 3}
|
||||||
@@ -1969,7 +1892,7 @@ PrefabInstance:
|
|||||||
objectReference: {fileID: 362502328}
|
objectReference: {fileID: 362502328}
|
||||||
- target: {fileID: 8209576767969738346, guid: 20e4ea3ceee86dd4ba3881425b65790d, type: 3}
|
- target: {fileID: 8209576767969738346, guid: 20e4ea3ceee86dd4ba3881425b65790d, type: 3}
|
||||||
propertyPath: m_VersionIndex
|
propertyPath: m_VersionIndex
|
||||||
value: 5881
|
value: 5884
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
m_RemovedComponents: []
|
m_RemovedComponents: []
|
||||||
m_RemovedGameObjects: []
|
m_RemovedGameObjects: []
|
||||||
@@ -2040,27 +1963,6 @@ Transform:
|
|||||||
m_CorrespondingSourceObject: {fileID: 5383576672370031505, guid: 92d3cde0c88c75f48a98d082c573338b, type: 3}
|
m_CorrespondingSourceObject: {fileID: 5383576672370031505, guid: 92d3cde0c88c75f48a98d082c573338b, type: 3}
|
||||||
m_PrefabInstance: {fileID: 5090177222934034458}
|
m_PrefabInstance: {fileID: 5090177222934034458}
|
||||||
m_PrefabAsset: {fileID: 0}
|
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
|
--- !u!224 &1182150969 stripped
|
||||||
RectTransform:
|
RectTransform:
|
||||||
m_CorrespondingSourceObject: {fileID: 3296430617892173296, guid: 69f9e42d2acbf0344981fcdffd02d588, type: 3}
|
m_CorrespondingSourceObject: {fileID: 3296430617892173296, guid: 69f9e42d2acbf0344981fcdffd02d588, type: 3}
|
||||||
@@ -2212,11 +2114,6 @@ RectTransform:
|
|||||||
m_CorrespondingSourceObject: {fileID: 8886833518829962744, guid: f6df2f5ea61cfcb439be39356b1560fa, type: 3}
|
m_CorrespondingSourceObject: {fileID: 8886833518829962744, guid: f6df2f5ea61cfcb439be39356b1560fa, type: 3}
|
||||||
m_PrefabInstance: {fileID: 4079305652280607641}
|
m_PrefabInstance: {fileID: 4079305652280607641}
|
||||||
m_PrefabAsset: {fileID: 0}
|
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
|
--- !u!1 &1310415455
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -2250,58 +2147,6 @@ Transform:
|
|||||||
- {fileID: 1254363909}
|
- {fileID: 1254363909}
|
||||||
m_Father: {fileID: 1976498063}
|
m_Father: {fileID: 1976498063}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
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
|
--- !u!1 &1321496847 stripped
|
||||||
GameObject:
|
GameObject:
|
||||||
m_CorrespondingSourceObject: {fileID: 8240327778457960307, guid: 92d3cde0c88c75f48a98d082c573338b, type: 3}
|
m_CorrespondingSourceObject: {fileID: 8240327778457960307, guid: 92d3cde0c88c75f48a98d082c573338b, type: 3}
|
||||||
@@ -2807,61 +2652,45 @@ PrefabInstance:
|
|||||||
serializedVersion: 3
|
serializedVersion: 3
|
||||||
m_TransformParent: {fileID: 1976498063}
|
m_TransformParent: {fileID: 1976498063}
|
||||||
m_Modifications:
|
m_Modifications:
|
||||||
- target: {fileID: 1137016772337159218, guid: 524ca0dabcf93844ea5f981410f44310, type: 3}
|
- target: {fileID: 147364745632062440, guid: 524ca0dabcf93844ea5f981410f44310, type: 3}
|
||||||
propertyPath: m_LocalPosition.x
|
propertyPath: _rightArm.Equipment.TapStrikeDuration
|
||||||
value: -0.1
|
value: 0.05
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 1847598235320137047, guid: 524ca0dabcf93844ea5f981410f44310, type: 3}
|
- target: {fileID: 147364745632062440, guid: 524ca0dabcf93844ea5f981410f44310, type: 3}
|
||||||
propertyPath: m_LocalPosition.x
|
propertyPath: _rightArm.Equipment.TapWindupDuration
|
||||||
value: 0.1
|
value: 0.18
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 2525145087024189396, guid: 524ca0dabcf93844ea5f981410f44310, type: 3}
|
- target: {fileID: 147364745632062440, guid: 524ca0dabcf93844ea5f981410f44310, type: 3}
|
||||||
propertyPath: _touchDistance
|
propertyPath: _rightArm.Equipment.TapWindupRotation
|
||||||
value: 4
|
value: 35
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 2525145087024189396, guid: 524ca0dabcf93844ea5f981410f44310, type: 3}
|
- target: {fileID: 147364745632062440, guid: 524ca0dabcf93844ea5f981410f44310, type: 3}
|
||||||
propertyPath: _handTouchFeedback
|
propertyPath: _rightArm.Equipment.TapWristSnapRotation
|
||||||
value:
|
value: 30
|
||||||
objectReference: {fileID: 1594544247}
|
|
||||||
- target: {fileID: 2525145087024189396, guid: 524ca0dabcf93844ea5f981410f44310, type: 3}
|
|
||||||
propertyPath: _listenableLayers.m_Bits
|
|
||||||
value: 524289
|
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 3435910664558456817, guid: 524ca0dabcf93844ea5f981410f44310, type: 3}
|
- target: {fileID: 738317799072394575, guid: 524ca0dabcf93844ea5f981410f44310, type: 3}
|
||||||
propertyPath: m_Enabled
|
propertyPath: _vignetteIntensity
|
||||||
value: 0
|
value: 0.3
|
||||||
objectReference: {fileID: 0}
|
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}
|
- target: {fileID: 3622123650942162330, guid: 524ca0dabcf93844ea5f981410f44310, type: 3}
|
||||||
propertyPath: _listeningVolume
|
propertyPath: _listeningVolume
|
||||||
value:
|
value:
|
||||||
objectReference: {fileID: 832575518}
|
objectReference: {fileID: 832575518}
|
||||||
- target: {fileID: 3666612565151794712, guid: 524ca0dabcf93844ea5f981410f44310, type: 3}
|
- target: {fileID: 3622123650942162330, guid: 524ca0dabcf93844ea5f981410f44310, type: 3}
|
||||||
propertyPath: field of view
|
propertyPath: _targetIntensity
|
||||||
value: 60
|
value: 0.1
|
||||||
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
|
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3700193918383472175, guid: 524ca0dabcf93844ea5f981410f44310, type: 3}
|
||||||
|
propertyPath: _globalVolume
|
||||||
|
value:
|
||||||
|
objectReference: {fileID: 832575518}
|
||||||
- target: {fileID: 8162540767767967414, guid: 524ca0dabcf93844ea5f981410f44310, type: 3}
|
- target: {fileID: 8162540767767967414, guid: 524ca0dabcf93844ea5f981410f44310, type: 3}
|
||||||
propertyPath: m_Name
|
propertyPath: m_Name
|
||||||
value: OctoPlayerFP
|
value: OctoPlayerFP
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 8725966219179855439, guid: 524ca0dabcf93844ea5f981410f44310, type: 3}
|
- target: {fileID: 8725966219179855439, guid: 524ca0dabcf93844ea5f981410f44310, type: 3}
|
||||||
propertyPath: m_LocalPosition.x
|
propertyPath: m_LocalPosition.x
|
||||||
value: 20.9
|
value: 20.6
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 8725966219179855439, guid: 524ca0dabcf93844ea5f981410f44310, type: 3}
|
- target: {fileID: 8725966219179855439, guid: 524ca0dabcf93844ea5f981410f44310, type: 3}
|
||||||
propertyPath: m_LocalPosition.y
|
propertyPath: m_LocalPosition.y
|
||||||
@@ -2869,7 +2698,7 @@ PrefabInstance:
|
|||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 8725966219179855439, guid: 524ca0dabcf93844ea5f981410f44310, type: 3}
|
- target: {fileID: 8725966219179855439, guid: 524ca0dabcf93844ea5f981410f44310, type: 3}
|
||||||
propertyPath: m_LocalPosition.z
|
propertyPath: m_LocalPosition.z
|
||||||
value: 65.9
|
value: 41.6
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 8725966219179855439, guid: 524ca0dabcf93844ea5f981410f44310, type: 3}
|
- target: {fileID: 8725966219179855439, guid: 524ca0dabcf93844ea5f981410f44310, type: 3}
|
||||||
propertyPath: m_LocalRotation.w
|
propertyPath: m_LocalRotation.w
|
||||||
@@ -2899,133 +2728,16 @@ PrefabInstance:
|
|||||||
propertyPath: m_LocalEulerAnglesHint.z
|
propertyPath: m_LocalEulerAnglesHint.z
|
||||||
value: 0
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 8933635129000347986, guid: 524ca0dabcf93844ea5f981410f44310, type: 3}
|
|
||||||
propertyPath: m_LocalPosition.x
|
|
||||||
value: 0.1
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
m_RemovedComponents: []
|
m_RemovedComponents: []
|
||||||
m_RemovedGameObjects: []
|
m_RemovedGameObjects: []
|
||||||
m_AddedGameObjects: []
|
m_AddedGameObjects: []
|
||||||
m_AddedComponents:
|
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_SourcePrefab: {fileID: 100100000, guid: 524ca0dabcf93844ea5f981410f44310, type: 3}
|
m_SourcePrefab: {fileID: 100100000, guid: 524ca0dabcf93844ea5f981410f44310, type: 3}
|
||||||
--- !u!4 &1569966200 stripped
|
--- !u!4 &1569966200 stripped
|
||||||
Transform:
|
Transform:
|
||||||
m_CorrespondingSourceObject: {fileID: 8725966219179855439, guid: 524ca0dabcf93844ea5f981410f44310, type: 3}
|
m_CorrespondingSourceObject: {fileID: 8725966219179855439, guid: 524ca0dabcf93844ea5f981410f44310, type: 3}
|
||||||
m_PrefabInstance: {fileID: 1569966199}
|
m_PrefabInstance: {fileID: 1569966199}
|
||||||
m_PrefabAsset: {fileID: 0}
|
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
|
--- !u!1001 &1612978258
|
||||||
PrefabInstance:
|
PrefabInstance:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -3127,17 +2839,6 @@ PrefabInstance:
|
|||||||
m_AddedGameObjects: []
|
m_AddedGameObjects: []
|
||||||
m_AddedComponents: []
|
m_AddedComponents: []
|
||||||
m_SourcePrefab: {fileID: 100100000, guid: 488e1a9d28c26ff4fbd783ca2843ceb4, type: 3}
|
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
|
--- !u!1 &1693053744
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -5402,10 +5103,7 @@ PrefabInstance:
|
|||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
m_RemovedComponents: []
|
m_RemovedComponents: []
|
||||||
m_RemovedGameObjects: []
|
m_RemovedGameObjects: []
|
||||||
m_AddedGameObjects:
|
m_AddedGameObjects: []
|
||||||
- targetCorrespondingSourceObject: {fileID: 8886833518829962744, guid: f6df2f5ea61cfcb439be39356b1560fa, type: 3}
|
|
||||||
insertIndex: -1
|
|
||||||
addedObject: {fileID: 1594544248}
|
|
||||||
m_AddedComponents: []
|
m_AddedComponents: []
|
||||||
m_SourcePrefab: {fileID: 100100000, guid: f6df2f5ea61cfcb439be39356b1560fa, type: 3}
|
m_SourcePrefab: {fileID: 100100000, guid: f6df2f5ea61cfcb439be39356b1560fa, type: 3}
|
||||||
--- !u!1001 &5090177222934034458
|
--- !u!1001 &5090177222934034458
|
||||||
@@ -5519,7 +5217,7 @@ PrefabInstance:
|
|||||||
- target: {fileID: 3142789394009655648, guid: 92d3cde0c88c75f48a98d082c573338b, type: 3}
|
- target: {fileID: 3142789394009655648, guid: 92d3cde0c88c75f48a98d082c573338b, type: 3}
|
||||||
propertyPath: _handTouchFeedback
|
propertyPath: _handTouchFeedback
|
||||||
value:
|
value:
|
||||||
objectReference: {fileID: 1594544247}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 3142789394009655648, guid: 92d3cde0c88c75f48a98d082c573338b, type: 3}
|
- target: {fileID: 3142789394009655648, guid: 92d3cde0c88c75f48a98d082c573338b, type: 3}
|
||||||
propertyPath: _maxCameraPanAngle
|
propertyPath: _maxCameraPanAngle
|
||||||
value: 8
|
value: 8
|
||||||
|
|||||||
+229
@@ -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<DiapasonListeningHandlerV2>
|
||||||
|
{
|
||||||
|
[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<AudioSource>();
|
||||||
|
if (_playerAudioSource == null)
|
||||||
|
_playerAudioSource = gameObject.AddComponent<AudioSource>();
|
||||||
|
|
||||||
|
if (_cameraPanController == null)
|
||||||
|
{
|
||||||
|
_cameraPanController = GetComponent<CameraPanController>();
|
||||||
|
if (_cameraPanController == null)
|
||||||
|
{
|
||||||
|
Debug.LogWarning("[DiapasonV2] CameraPanController not found!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_vignetteEffect == null)
|
||||||
|
{
|
||||||
|
_vignetteEffect = GetComponentInChildren<ListeningVignetteEffect>();
|
||||||
|
}
|
||||||
|
|
||||||
|
_cameraHeadBob = GetComponentInChildren<CameraHeadBob>();
|
||||||
|
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+2
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 46c1f473fbd3cac4397aabaa76d18357
|
||||||
+56
-46
@@ -94,14 +94,13 @@ namespace Unheimlich.Interactions.FloatingWords
|
|||||||
|
|
||||||
_isEffectActive = true;
|
_isEffectActive = true;
|
||||||
|
|
||||||
_scribbleTweenId = TweenHelper.AnimateMaterialFloat(
|
_scribbleTweenId = LeanTween.value(gameObject, 0f, 1f, scribbleDuration)
|
||||||
gameObject,
|
.setEase(LeanTweenType.easeInOutQuad)
|
||||||
_scribbleMaterialInstance,
|
.setOnUpdate((float val) => {
|
||||||
ProgressID,
|
if (_scribbleMaterialInstance != null)
|
||||||
0f,
|
_scribbleMaterialInstance.SetFloat(ProgressID, val);
|
||||||
1f,
|
})
|
||||||
scribbleDuration,
|
.setOnComplete(() => {
|
||||||
() => {
|
|
||||||
_scribbleTweenId = -1;
|
_scribbleTweenId = -1;
|
||||||
|
|
||||||
float ghostAlphaRatio = _ghostTextComponent != null ? (_originalGhostColor.a / _originalTextColor.a) : 0f;
|
float ghostAlphaRatio = _ghostTextComponent != null ? (_originalGhostColor.a / _originalTextColor.a) : 0f;
|
||||||
@@ -126,63 +125,74 @@ namespace Unheimlich.Interactions.FloatingWords
|
|||||||
})
|
})
|
||||||
.setOnComplete(() => {
|
.setOnComplete(() => {
|
||||||
_fadeTweenId = -1;
|
_fadeTweenId = -1;
|
||||||
|
_isEffectActive = false;
|
||||||
}).id;
|
}).id;
|
||||||
},
|
}).id;
|
||||||
LeanTweenType.easeInOutQuad);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ResetEffect()
|
public void ResetEffect()
|
||||||
{
|
{
|
||||||
|
if (!_overlayCreated || _scribbleOverlay == null)
|
||||||
|
{
|
||||||
|
_isEffectActive = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool overlayIsActive = _scribbleOverlay.gameObject.activeSelf;
|
||||||
|
|
||||||
|
if (!overlayIsActive)
|
||||||
|
{
|
||||||
|
_isEffectActive = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
CancelActiveTweens();
|
CancelActiveTweens();
|
||||||
|
_isEffectActive = false;
|
||||||
|
|
||||||
if (_scribbleMaterialInstance != null)
|
if (_scribbleMaterialInstance != null)
|
||||||
{
|
{
|
||||||
float currentProgress = _scribbleMaterialInstance.GetFloat(ProgressID);
|
float currentProgress = _scribbleMaterialInstance.GetFloat(ProgressID);
|
||||||
|
|
||||||
if (currentProgress > 0f)
|
_scribbleTweenId = LeanTween.value(gameObject, currentProgress, 0f, 0.3f)
|
||||||
{
|
.setEase(LeanTweenType.easeOutQuad)
|
||||||
_scribbleTweenId = TweenHelper.AnimateMaterialFloat(
|
.setOnUpdate((float val) => {
|
||||||
gameObject,
|
if (_scribbleMaterialInstance != null)
|
||||||
_scribbleMaterialInstance,
|
_scribbleMaterialInstance.SetFloat(ProgressID, val);
|
||||||
ProgressID,
|
})
|
||||||
currentProgress,
|
.setOnComplete(() => {
|
||||||
0f,
|
_scribbleTweenId = -1;
|
||||||
0.3f,
|
if (_scribbleOverlay != null)
|
||||||
() => {
|
_scribbleOverlay.gameObject.SetActive(false);
|
||||||
_scribbleTweenId = -1;
|
}).id;
|
||||||
if (_scribbleOverlay != null)
|
|
||||||
_scribbleOverlay.gameObject.SetActive(false);
|
|
||||||
},
|
|
||||||
LeanTweenType.easeOutQuad);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_textComponent != null)
|
if (_textComponent != null)
|
||||||
{
|
{
|
||||||
float currentAlpha = _textComponent.color.a;
|
float currentAlpha = _textComponent.color.a;
|
||||||
|
float ghostAlphaRatio = _ghostTextComponent != null ? (_originalGhostColor.a / _originalTextColor.a) : 0f;
|
||||||
|
|
||||||
if (currentAlpha < _originalTextColor.a)
|
_fadeTweenId = LeanTween.value(gameObject, currentAlpha, _originalTextColor.a, 0.3f)
|
||||||
{
|
.setEase(LeanTweenType.easeOutQuad)
|
||||||
float ghostAlphaRatio = _ghostTextComponent != null ? (_originalGhostColor.a / _originalTextColor.a) : 0f;
|
.setOnUpdate((float val) => {
|
||||||
|
if (_textComponent != null)
|
||||||
|
{
|
||||||
|
_textComponent.color = _textComponent.color.WithAlpha(val);
|
||||||
|
}
|
||||||
|
|
||||||
_fadeTweenId = TweenHelper.FadeText(
|
if (_ghostTextComponent != null)
|
||||||
gameObject,
|
{
|
||||||
_textComponent,
|
_ghostTextComponent.color = _ghostTextComponent.color.WithAlpha(val * ghostAlphaRatio);
|
||||||
_ghostTextComponent,
|
}
|
||||||
_originalTextColor.a,
|
|
||||||
0.3f,
|
if (_scribbleOverlay != null)
|
||||||
ghostAlphaRatio,
|
{
|
||||||
() => { _fadeTweenId = -1; },
|
_scribbleOverlay.color = _scribbleOverlay.color.WithAlpha(val);
|
||||||
LeanTweenType.easeOutQuad);
|
}
|
||||||
}
|
})
|
||||||
|
.setOnComplete(() => {
|
||||||
|
_fadeTweenId = -1;
|
||||||
|
}).id;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_scribbleOverlay != null)
|
|
||||||
{
|
|
||||||
_scribbleOverlay.color = _scribbleOverlay.color.WithAlpha(1f);
|
|
||||||
}
|
|
||||||
|
|
||||||
_isEffectActive = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void CancelActiveTweens()
|
private void CancelActiveTweens()
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ TagManager:
|
|||||||
- Words
|
- Words
|
||||||
- DetectiveBoard
|
- DetectiveBoard
|
||||||
- Player
|
- Player
|
||||||
-
|
- Listenable
|
||||||
-
|
-
|
||||||
-
|
-
|
||||||
-
|
-
|
||||||
|
|||||||
Reference in New Issue
Block a user