2D ํƒ‘๋ทฐ ๊ฒŒ์ž„์„ ์ œ์ž‘ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋™ ์ž…๋ ฅ๊ฐ’์— ๋”ฐ๋ผ direction ๊ฐ’์€ 8๊ฐ€์ง€๋กœ ๋ณ€ํ•˜๊ณ 


์ด๋™์„ ํ•˜๋ฉฐ ๋งˆ์šฐ์Šค ์šฐํด๋ฆญ์„ ํ•˜๋ฉด ์•„๋ž˜ ์ฝ”๋ฃจํ‹ด์ด ์‹คํ–‰๋˜๊ฒŒ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.


private IEnumerator PlayerDashRoutine(Vector3 direction)

{

float minDistance = 0.2f;

isPlayerDashing = true;


Vector3 targetPosition = player.transform.position + (Vector3)direction * movementDetails.dashDistance;

int layerMask = LayerMask.GetMask("Wall");

RaycastHit2D hit = Physics2D.Raycast(player.transform.position, direction, movementDetails.dashDistance + 0.1f, layerMask);



if(hit.collider != null)

{

targetPosition = hit.point - (Vector2)direction.normalized * 0.1f;

}


while(Vector3.Distance(player.transform.position, targetPosition) > minDistance)

{

player.movementToPositionEvent.CallMovementToPositionEvent(targetPosition, player.transform.position, movementDetails.dashSpeed, direction, isPlayerDashing);

yield return waitForFixedUpdate;

}


isPlayerDashing = false;

playerDashCooldownTimer = movementDetails.dashCooldownTime;

player.transform.position = targetPosition;

}

์•„๋ž˜๋Š” ๋‹ค๋ฅธ ๋Œ€์‰ฌ ์ด๋ฒคํŠธ ๊ด€๋ จ ์Šคํฌ๋ฆฝํŠธ์˜ ๋Œ€์‰ฌ ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.

private void MoveRigidBody(Vector3 movePosition, Vector3 currentPosition, float moveSpeed)

{

Vector2 unitVector = Vector3.Normalize(movePosition - currentPosition);

Vector3 newPosition = rigidBody2D.position + (unitVector * moveSpeed * Time.fixedDeltaTime);


rigidBody2D.velocity = unitVector * moveSpeed;

}


์บ๋ฆญํ„ฐ๊ฐ€ ๋ฒฝ์ชฝ์œผ๋กœ ๋Œ€์‰ฌ๋ฅผ ํ•˜๋ฉด ๋ฒฝ๊ณผ ์บ๋ฆญํ„ฐ์˜ ์ฝœ๋ผ์ด๋”๊ฐ€ ๋ถ€๋”ชํ˜€ ๋ฉˆ์ถ”๊ฒŒ ๋ผ์„œ ๋Œ€์‰ฌ๋ฅผ ํ–ˆ์„๋•Œ ์•ž์— ๋ฒฝ์ด ์žˆ์œผ๋ฉด ๊ทธ๋งŒํผ ํƒ€๊ฒŸํฌ์ง€์…˜์ด ๋ณ€๊ฒฝ๋˜๊ฒŒ ๋งŒ๋“ค์–ด๋ดค๋Š”๋ฐ์š”.
๊ทธ๋Ÿฐ๋ฐ ์•„๋ž˜ ๊ทธ๋ฆผ๊ฐ™์€ ์ƒํ™ฉ์—์„œ ๋Œ€์‰ฌ๋ฅผ ํ•˜๋ฉด ํ”Œ๋ ˆ์ด์–ด์˜ ์ฝœ๋ผ์ด๋”์™€ ๋ฒฝ ์ฝœ๋ผ์ด๋”๊ฐ€ ๊ฒน์น˜๋ฉด์„œ ๋‹ค์‹œ ๋ฉˆ์ถคํ˜„์ƒ์ด ์ƒ๊น๋‹ˆ๋‹ค.




๋ณด๋˜ ๊ฐ•์˜์—์„  ์ฝœ๋ผ์ด๋”์— ๋ถ€๋”ชํžˆ๋ฉด ์ฝ”๋ฃจํ‹ด์„ ์ค‘์ง€ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ์ฝ”๋“œ๋ฅผ ๋„ฃ๋˜๋ฐ ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ชจ์„œ๋ฆฌ์—์„œ์˜ ๋Œ€์‰ฌ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•ด์„œ ์–ด๋–ป๊ฒŒ๋“  ์ค‘์ง€ ์ฝ”๋“œ ์—†์ด ํ•ด๋ณด๋ ค๋Š”๋ฐ ์—ฌ๊ธฐ์„œ ๊ณ„์† ๋ง‰ํžˆ๋„ค์š”.. ์„ค๋ช…์ด ๋ถ€์กฑํ•œ ๋ถ€๋ถ„์ด ์žˆ์œผ๋ฉด ๋ง์”€ํ•ด์ฃผ์„ธ์š”. ๋„์™€์ฃผ์„ธ์š” ํ˜•๋‹˜๋“ค ใ… ใ