Working ragdoll; Added sounds bytes utils
This commit is contained in:
parent
6535829abd
commit
c7e2ba805b
13
Assets/FollowParent.cs
Normal file
13
Assets/FollowParent.cs
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
public class FollowParent : MonoBehaviour
|
||||||
|
{
|
||||||
|
[SerializeField] private Transform follow;
|
||||||
|
[SerializeField] private Rigidbody rg;
|
||||||
|
private void Update()
|
||||||
|
{
|
||||||
|
transform.position = follow.position;
|
||||||
|
}
|
||||||
|
}
|
||||||
11
Assets/FollowParent.cs.meta
Normal file
11
Assets/FollowParent.cs.meta
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0fbc699a0e80590478455ba80b87897b
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
File diff suppressed because it is too large
Load Diff
@ -854,75 +854,6 @@ PrefabInstance:
|
|||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
m_RemovedComponents: []
|
m_RemovedComponents: []
|
||||||
m_SourcePrefab: {fileID: 100100000, guid: f06e0b2bd426cc249b952a8f4e6711e5, type: 3}
|
m_SourcePrefab: {fileID: 100100000, guid: f06e0b2bd426cc249b952a8f4e6711e5, type: 3}
|
||||||
--- !u!1001 &714208351
|
|
||||||
PrefabInstance:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Modification:
|
|
||||||
m_TransformParent: {fileID: 1211811540}
|
|
||||||
m_Modifications:
|
|
||||||
- target: {fileID: 8636591160554159306, guid: 7d85378c67373104c9c2627e9074c63d,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_RootOrder
|
|
||||||
value: 2
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 8636591160554159306, guid: 7d85378c67373104c9c2627e9074c63d,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_LocalPosition.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 8636591160554159306, guid: 7d85378c67373104c9c2627e9074c63d,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_LocalPosition.y
|
|
||||||
value: -0.79
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 8636591160554159306, guid: 7d85378c67373104c9c2627e9074c63d,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_LocalPosition.z
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 8636591160554159306, guid: 7d85378c67373104c9c2627e9074c63d,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_LocalRotation.w
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 8636591160554159306, guid: 7d85378c67373104c9c2627e9074c63d,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_LocalRotation.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 8636591160554159306, guid: 7d85378c67373104c9c2627e9074c63d,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_LocalRotation.y
|
|
||||||
value: -1
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 8636591160554159306, guid: 7d85378c67373104c9c2627e9074c63d,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_LocalRotation.z
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 8636591160554159306, guid: 7d85378c67373104c9c2627e9074c63d,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_LocalEulerAnglesHint.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 8636591160554159306, guid: 7d85378c67373104c9c2627e9074c63d,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_LocalEulerAnglesHint.y
|
|
||||||
value: -180
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 8636591160554159306, guid: 7d85378c67373104c9c2627e9074c63d,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_LocalEulerAnglesHint.z
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 8975820612264765040, guid: 7d85378c67373104c9c2627e9074c63d,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_Name
|
|
||||||
value: Thief
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
m_RemovedComponents: []
|
|
||||||
m_SourcePrefab: {fileID: 100100000, guid: 7d85378c67373104c9c2627e9074c63d, type: 3}
|
|
||||||
--- !u!1001 &770064676
|
--- !u!1001 &770064676
|
||||||
PrefabInstance:
|
PrefabInstance:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -2799,21 +2730,6 @@ PrefabInstance:
|
|||||||
m_Modification:
|
m_Modification:
|
||||||
m_TransformParent: {fileID: 0}
|
m_TransformParent: {fileID: 0}
|
||||||
m_Modifications:
|
m_Modifications:
|
||||||
- target: {fileID: 1772573266731274163, guid: 4dbf735f9da7b9f43b69f1577e4e5763,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: movementSpeed
|
|
||||||
value: 0.8
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 1772573266731274163, guid: 4dbf735f9da7b9f43b69f1577e4e5763,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: maxMovementSpeed
|
|
||||||
value: 30
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 1772573266731274169, guid: 4dbf735f9da7b9f43b69f1577e4e5763,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_Enabled
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 1772573266731274171, guid: 4dbf735f9da7b9f43b69f1577e4e5763,
|
- target: {fileID: 1772573266731274171, guid: 4dbf735f9da7b9f43b69f1577e4e5763,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_Name
|
propertyPath: m_Name
|
||||||
@ -2834,11 +2750,6 @@ PrefabInstance:
|
|||||||
propertyPath: hitMarkerRect
|
propertyPath: hitMarkerRect
|
||||||
value:
|
value:
|
||||||
objectReference: {fileID: 1301531513}
|
objectReference: {fileID: 1301531513}
|
||||||
- target: {fileID: 1772573266731274174, guid: 4dbf735f9da7b9f43b69f1577e4e5763,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_IsKinematic
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 1772573266731274175, guid: 4dbf735f9da7b9f43b69f1577e4e5763,
|
- target: {fileID: 1772573266731274175, guid: 4dbf735f9da7b9f43b69f1577e4e5763,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_RootOrder
|
propertyPath: m_RootOrder
|
||||||
@ -2894,11 +2805,6 @@ PrefabInstance:
|
|||||||
propertyPath: m_LocalEulerAnglesHint.z
|
propertyPath: m_LocalEulerAnglesHint.z
|
||||||
value: 0
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 1772573266917019329, guid: 4dbf735f9da7b9f43b69f1577e4e5763,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_LocalPosition.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
m_RemovedComponents: []
|
m_RemovedComponents: []
|
||||||
m_SourcePrefab: {fileID: 100100000, guid: 4dbf735f9da7b9f43b69f1577e4e5763, type: 3}
|
m_SourcePrefab: {fileID: 100100000, guid: 4dbf735f9da7b9f43b69f1577e4e5763, type: 3}
|
||||||
--- !u!1001 &5226806889855461982
|
--- !u!1001 &5226806889855461982
|
||||||
|
|||||||
@ -2,17 +2,21 @@ using System.Collections;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
|
using Bytes.Sound;
|
||||||
|
|
||||||
public class PlayerController : MonoBehaviour
|
public class PlayerController : MonoBehaviour
|
||||||
{
|
{
|
||||||
private GrappleHook grappleScript;
|
private GrappleHook grappleScript;
|
||||||
private CharacterMovement movementScript;
|
private CharacterMovement movementScript;
|
||||||
private Rigidbody rb;
|
private Rigidbody rb;
|
||||||
|
SoundPlayer soundPlayer;
|
||||||
// Start is called before the first frame update
|
// Start is called before the first frame update
|
||||||
void Start()
|
void Start()
|
||||||
{
|
{
|
||||||
rb = GetComponent<Rigidbody>();
|
rb = GetComponent<Rigidbody>();
|
||||||
grappleScript = GetComponent<GrappleHook>();
|
grappleScript = GetComponent<GrappleHook>();
|
||||||
movementScript = GetComponent<CharacterMovement>();
|
movementScript = GetComponent<CharacterMovement>();
|
||||||
|
soundPlayer = GetComponent<SoundPlayer>();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update is called once per frame
|
// Update is called once per frame
|
||||||
@ -24,6 +28,7 @@ public class PlayerController : MonoBehaviour
|
|||||||
public void Stun(float duration){
|
public void Stun(float duration){
|
||||||
grappleScript.Stun(duration);
|
grappleScript.Stun(duration);
|
||||||
movementScript.Stun(duration);
|
movementScript.Stun(duration);
|
||||||
|
soundPlayer.PlaySound("PlayerHurt");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Knockback(Vector2 dir){
|
public void Knockback(Vector2 dir){
|
||||||
|
|||||||
@ -13,25 +13,19 @@ public class Ragdoll : MonoBehaviour
|
|||||||
{
|
{
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private bool _startsRagdolled;
|
private bool _startsRagdolled;
|
||||||
|
[SerializeField]
|
||||||
|
private Transform _hipBone;
|
||||||
|
|
||||||
private List<Rigidbody> _ragdollRigidbodies;
|
private List<Rigidbody> _ragdollRigidbodies;
|
||||||
private Animator _animator;
|
|
||||||
private Transform _hipBone;
|
|
||||||
|
|
||||||
private bool _isRagdoll
|
private bool _isRagdoll
|
||||||
{
|
{
|
||||||
get { return _ragdollRigidbodies != null && !_ragdollRigidbodies.Select(x => x.isKinematic).FirstOrDefault(); }
|
get { return _ragdollRigidbodies != null && !_ragdollRigidbodies.Select(x => x.isKinematic).FirstOrDefault(); }
|
||||||
}
|
}
|
||||||
|
|
||||||
// Start is called before the first frame update
|
|
||||||
private void Start()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Awake()
|
private void Awake()
|
||||||
{
|
{
|
||||||
_ragdollRigidbodies = GetComponentsInChildren<Rigidbody>().ToList();
|
_ragdollRigidbodies = GetComponentsInChildren<Rigidbody>().ToList();
|
||||||
_animator = GetComponent<Animator>();
|
|
||||||
_hipBone = _animator.GetBoneTransform(HumanBodyBones.Hips);
|
|
||||||
|
|
||||||
void setRagdollState()
|
void setRagdollState()
|
||||||
{
|
{
|
||||||
@ -65,15 +59,19 @@ public class Ragdoll : MonoBehaviour
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void EnableRagdoll()
|
private void EnableRagdoll()
|
||||||
{
|
{
|
||||||
_ragdollRigidbodies.ForEach(rigidbody => rigidbody.isKinematic = false);
|
_ragdollRigidbodies.ForEach(rigidbody => rigidbody.isKinematic = false);
|
||||||
_animator.enabled = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DisableRagdoll()
|
private void DisableRagdoll()
|
||||||
{
|
{
|
||||||
_ragdollRigidbodies.ForEach(rigidbody => rigidbody.isKinematic = true);
|
_ragdollRigidbodies.ForEach(rigidbody =>
|
||||||
_animator.enabled = true;
|
{
|
||||||
|
rigidbody.isKinematic = true;
|
||||||
|
rigidbody.detectCollisions = true;
|
||||||
|
});
|
||||||
StandBackUp();
|
StandBackUp();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -95,6 +93,4 @@ public class Ragdoll : MonoBehaviour
|
|||||||
|
|
||||||
_hipBone.position = originalHipsPosition;
|
_hipBone.position = originalHipsPosition;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
8
Assets/Scripts/Sound.meta
Normal file
8
Assets/Scripts/Sound.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: dda7a3d8788479840bd85a0af58b3d15
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
37
Assets/Scripts/Sound/SoundPlayer.cs
Normal file
37
Assets/Scripts/Sound/SoundPlayer.cs
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace Bytes.Sound
|
||||||
|
{
|
||||||
|
[RequireComponent(typeof(AudioSource))]
|
||||||
|
public class SoundPlayer : MonoBehaviour
|
||||||
|
{
|
||||||
|
[SerializeField] private SoundTemplate[] playableSounds;
|
||||||
|
private Dictionary<string, SoundTemplate> _playableSounds;
|
||||||
|
|
||||||
|
private AudioSource _audioSource;
|
||||||
|
|
||||||
|
private void Awake()
|
||||||
|
{
|
||||||
|
_audioSource = GetComponent<AudioSource>();
|
||||||
|
_playableSounds = new Dictionary<string, SoundTemplate>();
|
||||||
|
|
||||||
|
foreach (var sound in playableSounds)
|
||||||
|
{
|
||||||
|
_playableSounds.Add(sound.name, sound);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void PlaySound(string soundName, float volumeMultiplier = 1f, float overrideVolume = -1f)
|
||||||
|
{
|
||||||
|
if (_playableSounds.TryGetValue(soundName, out SoundTemplate sound))
|
||||||
|
{
|
||||||
|
_audioSource.clip = sound.GetRandomClip();
|
||||||
|
_audioSource.pitch = sound.GetRandomPitch();
|
||||||
|
_audioSource.volume = ((overrideVolume != -1f) ? overrideVolume : sound.volume) * volumeMultiplier;
|
||||||
|
_audioSource.Play();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
11
Assets/Scripts/Sound/SoundPlayer.cs.meta
Normal file
11
Assets/Scripts/Sound/SoundPlayer.cs.meta
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 6fb36fee47a0d6a44bc2237dfbdac4d5
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
29
Assets/Scripts/Sound/SoundTemplate.cs
Normal file
29
Assets/Scripts/Sound/SoundTemplate.cs
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
using System.Collections;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace Bytes.Sound
|
||||||
|
{
|
||||||
|
[CreateAssetMenu(fileName = "Sound", menuName = "SoundTemplate")]
|
||||||
|
public class SoundTemplate : ScriptableObject
|
||||||
|
{
|
||||||
|
[Header("Text")]
|
||||||
|
public new string name;
|
||||||
|
|
||||||
|
[Header("Sound Data")]
|
||||||
|
[Tooltip("Sound variations if many.")]
|
||||||
|
public AudioClip[] clips;
|
||||||
|
public float volume = 1f;
|
||||||
|
[Tooltip("Max Random pitch change.")]
|
||||||
|
public float maxRandomPitchChange = 0.02f;
|
||||||
|
|
||||||
|
public AudioClip GetRandomClip()
|
||||||
|
{
|
||||||
|
return clips[Random.Range(0, clips.Length)];
|
||||||
|
}
|
||||||
|
|
||||||
|
public float GetRandomPitch()
|
||||||
|
{
|
||||||
|
return 1f + Random.Range(-maxRandomPitchChange, maxRandomPitchChange);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
11
Assets/Scripts/Sound/SoundTemplate.cs.meta
Normal file
11
Assets/Scripts/Sound/SoundTemplate.cs.meta
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f5baf129b10beab41b82ab310fd176e2
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
19
Assets/SoundPlayerHurt.asset
Normal file
19
Assets/SoundPlayerHurt.asset
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &11400000
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: f5baf129b10beab41b82ab310fd176e2, type: 3}
|
||||||
|
m_Name: SoundPlayerHurt
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
name: PlayerHurt
|
||||||
|
clips:
|
||||||
|
- {fileID: 0}
|
||||||
|
volume: 1
|
||||||
|
maxRandomPitchChange: 0.02
|
||||||
8
Assets/SoundPlayerHurt.asset.meta
Normal file
8
Assets/SoundPlayerHurt.asset.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 973ba6a42810a6b42807bf7ef7fe13a1
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -18,7 +18,7 @@ PhysicsManager:
|
|||||||
m_ClothInterCollisionDistance: 0.1
|
m_ClothInterCollisionDistance: 0.1
|
||||||
m_ClothInterCollisionStiffness: 0.2
|
m_ClothInterCollisionStiffness: 0.2
|
||||||
m_ContactsGeneration: 1
|
m_ContactsGeneration: 1
|
||||||
m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
m_LayerCollisionMatrix: fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||||
m_AutoSimulation: 1
|
m_AutoSimulation: 1
|
||||||
m_AutoSyncTransforms: 0
|
m_AutoSyncTransforms: 0
|
||||||
m_ReuseCollisionCallbacks: 0
|
m_ReuseCollisionCallbacks: 0
|
||||||
|
|||||||
@ -14,8 +14,8 @@ TagManager:
|
|||||||
- UI
|
- UI
|
||||||
- Grappleable
|
- Grappleable
|
||||||
- Stun
|
- Stun
|
||||||
-
|
- Player
|
||||||
-
|
- PlayerRagdoll
|
||||||
-
|
-
|
||||||
-
|
-
|
||||||
-
|
-
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user