diff options
author | chai <chaifix@163.com> | 2020-10-24 17:30:07 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2020-10-24 17:30:07 +0800 |
commit | 65ed53a40f990e895305ff17a5e48e3cd6b8785b (patch) | |
tree | 3333c6a9b19fa5602fd8827e582273f602452bec /Assets/Art/Vfx/GrabSquaresEffect/AbstractWiresEffect/Scripts | |
parent | 56a9b3bf4edc56e9c1dd502a469a7a0167751215 (diff) |
*物理系统
Diffstat (limited to 'Assets/Art/Vfx/GrabSquaresEffect/AbstractWiresEffect/Scripts')
6 files changed, 0 insertions, 237 deletions
diff --git a/Assets/Art/Vfx/GrabSquaresEffect/AbstractWiresEffect/Scripts/CollisionDetector.cs b/Assets/Art/Vfx/GrabSquaresEffect/AbstractWiresEffect/Scripts/CollisionDetector.cs deleted file mode 100644 index 179d8511..00000000 --- a/Assets/Art/Vfx/GrabSquaresEffect/AbstractWiresEffect/Scripts/CollisionDetector.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System; -using UnityEngine; - -namespace Assets.AbstractWiresEffect.Scripts -{ - internal sealed class CollisionDetector : MonoBehaviour - { - public float CollisionDistance; - - private Transform _transform; - - public event Action<Vector3> CollisionDetected; - - private void Start() - { - _transform = transform; - } - - private void FixedUpdate() - { - RaycastHit hit; - if (!Physics.Raycast(_transform.position, -transform.up, out hit, CollisionDistance)) - return; - - var distance = Vector3.Distance(_transform.position, hit.point); - - if (distance > CollisionDistance) - return; - - if (CollisionDetected != null) - CollisionDetected.Invoke(hit.point); - } - } -} diff --git a/Assets/Art/Vfx/GrabSquaresEffect/AbstractWiresEffect/Scripts/CollisionDetector.cs.meta b/Assets/Art/Vfx/GrabSquaresEffect/AbstractWiresEffect/Scripts/CollisionDetector.cs.meta deleted file mode 100644 index bab53bf8..00000000 --- a/Assets/Art/Vfx/GrabSquaresEffect/AbstractWiresEffect/Scripts/CollisionDetector.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 89af8e8c11b710841957296475354a38 -timeCreated: 1497378512 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Art/Vfx/GrabSquaresEffect/AbstractWiresEffect/Scripts/CollisionSpawner.cs b/Assets/Art/Vfx/GrabSquaresEffect/AbstractWiresEffect/Scripts/CollisionSpawner.cs deleted file mode 100644 index 82f19fd9..00000000 --- a/Assets/Art/Vfx/GrabSquaresEffect/AbstractWiresEffect/Scripts/CollisionSpawner.cs +++ /dev/null @@ -1,53 +0,0 @@ -using UnityEngine; - -namespace Assets.AbstractWiresEffect.Scripts -{ - [RequireComponent(typeof(CollisionDetector))] - internal sealed class CollisionSpawner : MonoBehaviour - { - public GameObject CollisionEffect; - public float LifeTime = 1f; - - private bool _isAlreadySpawned; - private CollisionDetector _collisionDetector; - - private void Start() - { - _collisionDetector = GetComponent<CollisionDetector>(); - _collisionDetector.CollisionDetected += OnCollisionDetected; - } - - private void OnCollisionDetected(Vector3 hit) - { - if (_isAlreadySpawned) - return; - - InstantiateImpactEffect(hit); - - ////todo add decal - ////InstantiateDecal(); - } - - private void InstantiateImpactEffect(Vector3 pos) - { - var impactEffect = Instantiate(CollisionEffect, pos, CollisionEffect.transform.rotation); - impactEffect.transform.position = pos; - - //todo add ivoke with delay and params - Destroy(impactEffect, LifeTime); - Invoke("Reset", LifeTime); - - _isAlreadySpawned = true; - } - - private void Reset() - { - _isAlreadySpawned = false; - } - - private void OnDestroy() - { - _collisionDetector.CollisionDetected -= OnCollisionDetected; - } - } -} diff --git a/Assets/Art/Vfx/GrabSquaresEffect/AbstractWiresEffect/Scripts/CollisionSpawner.cs.meta b/Assets/Art/Vfx/GrabSquaresEffect/AbstractWiresEffect/Scripts/CollisionSpawner.cs.meta deleted file mode 100644 index d0219bdc..00000000 --- a/Assets/Art/Vfx/GrabSquaresEffect/AbstractWiresEffect/Scripts/CollisionSpawner.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: f1188527b3754cc40b3c05ec3089423a -timeCreated: 1497378515 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Art/Vfx/GrabSquaresEffect/AbstractWiresEffect/Scripts/WiresConnector.cs b/Assets/Art/Vfx/GrabSquaresEffect/AbstractWiresEffect/Scripts/WiresConnector.cs deleted file mode 100644 index 0bd1c9f0..00000000 --- a/Assets/Art/Vfx/GrabSquaresEffect/AbstractWiresEffect/Scripts/WiresConnector.cs +++ /dev/null @@ -1,114 +0,0 @@ -using UnityEngine; - -namespace Assets.AbstractWiresEffect.Scripts -{ - internal sealed class WiresConnector : MonoBehaviour - { - public GameObject WiresParticles; - public GameObject LineRendererPrefab; - public bool UseSkinnedMeshRenderer; - public SkinnedMeshRenderer TargetSkinnedMeshRenderer; - public float MaxDistance; - public int MaxConnections; - public int MaxLineRenderers; - - private ParticleSystem _particleSystem; - private ParticleSystem.MainModule _particleSystemMainModule; - private ParticleSystem.Particle[] _particles; - private LineRenderer[] _lineRenderers; - private Transform _psTransform; - - private void Start() - { - _lineRenderers = new LineRenderer[MaxLineRenderers]; - - var go = Instantiate(WiresParticles, transform.position, WiresParticles.transform.rotation); - go.transform.parent = transform; - - _particleSystem = go.GetComponent<ParticleSystem>(); - var sh = _particleSystem.shape; - - if (UseSkinnedMeshRenderer) - sh.skinnedMeshRenderer = TargetSkinnedMeshRenderer; - - _particleSystemMainModule = _particleSystem.main; - _psTransform = _particleSystem.GetComponent<Transform>(); - - int maxParticles = _particleSystemMainModule.maxParticles; - _particles = new ParticleSystem.Particle[maxParticles]; - } - - private void LateUpdate() - { - var liveParticles = _particleSystem.GetParticles(_particles); - var lineRenderersCount = _lineRenderers.Length; - - var lrIndex = 0; - for (int i = 0; i < liveParticles; i++) - { - var p1Pos = _particles[i].position; - - var particleConnections = 0; - - for (int j = i + 1; j < liveParticles; j++) - { - if (particleConnections == MaxConnections || lrIndex == MaxLineRenderers) - break; - - var p2Pos = _particles[j].position; - - float distance = Vector3.Distance(p2Pos, p1Pos); - if (distance > MaxDistance) - continue; - - LineRenderer lineRenderer; - - if (_lineRenderers[lrIndex] == null) - { - var go = Instantiate(LineRendererPrefab, _psTransform.position, _psTransform.rotation); - lineRenderer = go.GetComponent<LineRenderer>(); - lineRenderer.transform.parent = _psTransform.transform; - _lineRenderers[lrIndex] = lineRenderer; - } - - lineRenderer = _lineRenderers[lrIndex]; - - lineRenderer.enabled = true; - lineRenderer.SetPosition(0, p1Pos); - lineRenderer.SetPosition(1, p2Pos); - - lrIndex++; - particleConnections++; - } - } - - var outdatedLineRenderers = lineRenderersCount - lrIndex; - - for (int i = lrIndex; i < outdatedLineRenderers; i++) - { - if (_lineRenderers[i] != null) - _lineRenderers[i].enabled = false; - } - } - - private void Stop() - { - DestroyAllLines(); - } - - private void OnDestroy() - { - DestroyAllLines(); - } - - private void DestroyAllLines() - { - if (_lineRenderers == null) - return; - - foreach (var lineRenderer in _lineRenderers) - if (lineRenderer != null) - Destroy(lineRenderer); - } - } -}
\ No newline at end of file diff --git a/Assets/Art/Vfx/GrabSquaresEffect/AbstractWiresEffect/Scripts/WiresConnector.cs.meta b/Assets/Art/Vfx/GrabSquaresEffect/AbstractWiresEffect/Scripts/WiresConnector.cs.meta deleted file mode 100644 index 102baf87..00000000 --- a/Assets/Art/Vfx/GrabSquaresEffect/AbstractWiresEffect/Scripts/WiresConnector.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: bbb8a810ae4045342a7b72f088142ca5 -timeCreated: 1497378504 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: |