Ver 0.2.3.0 추가 수정사항

+ Rockfall 로직 변경 떨어지는 속도 0.8초 등가속도
+ ProjectileController 에서 targetLayer가 Props인 경우 DamageableProps으로 한정
This commit is contained in:
NTG_Lenovo 2024-06-25 15:56:28 +09:00
parent 07ae6e86b2
commit bb10ead082
4 changed files with 60 additions and 37 deletions

View File

@ -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<ParticleSystem>();
foreach (var element in trailParticles)
{

View File

@ -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))
{

View File

@ -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

View File

@ -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: