diff --git a/Assets/02.Scripts/ProjectileController.cs b/Assets/02.Scripts/ProjectileController.cs index 0ef273f93..48e7b62f3 100644 --- a/Assets/02.Scripts/ProjectileController.cs +++ b/Assets/02.Scripts/ProjectileController.cs @@ -108,6 +108,12 @@ namespace BlueWater // transform.position = raycastHit.point + raycastHit.normal * _collideOffset; var hitCollider = _hitColliders[0]; + if (hitCollider.gameObject.layer == LayerMask.NameToLayer("Props") + && !hitCollider.CompareTag("DamageableProps")) + { + return; + } + var trailParticles = GetComponentsInChildren(); foreach (var element in trailParticles) { diff --git a/Assets/02.Scripts/Prop/Rockfall.cs b/Assets/02.Scripts/Prop/Rockfall.cs index 86ea13b65..7f5bfaedd 100644 --- a/Assets/02.Scripts/Prop/Rockfall.cs +++ b/Assets/02.Scripts/Prop/Rockfall.cs @@ -61,7 +61,7 @@ namespace BlueWater private IEnumerator Start() { - _visualLook.SetActive(false); + //_visualLook.SetActive(false); _sphereCollider.enabled = false; _startPosition = transform.position; SpawnLocation = MapManager.Instance.SandMoleMapController.ParticleInstanceLocation; @@ -85,45 +85,62 @@ namespace BlueWater var fillValue = Mathf.Lerp(0f, 1f, time); _indicator.material.SetFloat(_fillHash, fillValue); } - //transform.position = Vector3.Lerp(_startPosition, _endPosition, time); + + // TODO : 가끔씩 공중에서 멈추는 경우? + if (_isAcceleratedFall) + { + var distance = Vector3.Distance(_startPosition, _endPosition); + var acceleration = 2 * distance / (_fallTime * _fallTime); // a = 2d / t^2 + var displacement = 0.5f * acceleration * elapsedTime * elapsedTime; + var progress = displacement / distance; + transform.position = Vector3.Lerp(_startPosition, _endPosition, progress); + } + else + { + transform.position = Vector3.Lerp(_startPosition, _endPosition, time); + } + elapsedTime += Time.deltaTime; yield return null; } - + + transform.position = _endPosition; _indicator.material.SetFloat(_fillHash, 1f); HideIndicator(); - _visualLook.SetActive(true); + //_visualLook.SetActive(true); - if (_isAcceleratedFall) - { - var distance = Vector3.Distance(_startPosition, _endPosition); - var acceleration = 2 * distance / (_fallTime * _fallTime); // a = 2d / t^2 - elapsedTime = 0f; - - while (elapsedTime <= _fallTime) - { - var time = elapsedTime; - var displacement = 0.5f * acceleration * time * time; - var progress = displacement / distance; - transform.position = Vector3.Lerp(_startPosition, _endPosition, progress); - elapsedTime += Time.deltaTime; - - yield return null; - } - } - else - { - elapsedTime = 0f; - while (elapsedTime <= _fallTime) - { - var time = elapsedTime / _fallTime; - transform.position = Vector3.Lerp(_startPosition, _endPosition, time); - elapsedTime += Time.deltaTime; - - yield return null; - } - } + // if (_isAcceleratedFall) + // { + // var distance = Vector3.Distance(_startPosition, _endPosition); + // var acceleration = 2 * distance / (_fallTime * _fallTime); // a = 2d / t^2 + // elapsedTime = 0f; + // + // while (elapsedTime <= _fallTime) + // { + // var time = elapsedTime; + // var displacement = 0.5f * acceleration * time * time; + // var progress = displacement / distance; + // transform.position = Vector3.Lerp(_startPosition, _endPosition, progress); + // elapsedTime += Time.deltaTime; + // + // yield return null; + // } + // } + // else + // { + // elapsedTime = 0f; + // while (elapsedTime <= _fallTime) + // { + // var time = elapsedTime / _fallTime; + // transform.position = Vector3.Lerp(_startPosition, _endPosition, time); + // elapsedTime += Time.deltaTime; + // + // yield return null; + // } + // } + // + // transform.position = _endPosition; if (!string.IsNullOrEmpty(_groundCrashSfxName)) { diff --git a/Assets/05.Prefabs/Props/DamageableProps/BaseDamageableProps.prefab b/Assets/05.Prefabs/Props/DamageableProps/BaseDamageableProps.prefab index 205c001bd..3d7614a66 100644 --- a/Assets/05.Prefabs/Props/DamageableProps/BaseDamageableProps.prefab +++ b/Assets/05.Prefabs/Props/DamageableProps/BaseDamageableProps.prefab @@ -58,9 +58,9 @@ Rigidbody: m_ImplicitTensor: 1 m_UseGravity: 1 m_IsKinematic: 0 - m_Interpolate: 1 + m_Interpolate: 0 m_Constraints: 112 - m_CollisionDetection: 2 + m_CollisionDetection: 0 --- !u!135 &1772409705626034443 SphereCollider: m_ObjectHideFlags: 0 diff --git a/Assets/05.Prefabs/Props/DamageableProps/Rockfall.prefab b/Assets/05.Prefabs/Props/DamageableProps/Rockfall.prefab index fd82d2b22..54138fe2a 100644 --- a/Assets/05.Prefabs/Props/DamageableProps/Rockfall.prefab +++ b/Assets/05.Prefabs/Props/DamageableProps/Rockfall.prefab @@ -309,8 +309,8 @@ MonoBehaviour: _groundLayer: serializedVersion: 2 m_Bits: 64 - _indicatorTime: 0.5 - _fallTime: 0.5 + _indicatorTime: 0.8 + _fallTime: 0.8 _attackDamage: 1 _isAcceleratedFall: 1 _groundCrashSfxName: