Notice
Recent Posts
Recent Comments
Link
박민혁의 개발
랜덤한 방향성 부여하기 본문
Random.insideUnitCircle
Unity에서 제공하는 랜덤 벡터를 생성하는 함수
이 함수는 2D 공간에서 반지름이 1인 원 내부에 있는 랜덤한 점을 나타내는 2D 벡터를 반환 해줌.
반지름이 1인 원 내부에 있는 임의의 점을 랜덤하게 선택.
이 점의 x와 y 좌표를 가지고 있는 2D 벡터를 생성.
생성된 벡터의 길이는 1 이하.
normalized를 하여 벡터를 정규화 해줘야함
정규화는 벡터 길이가 1 이어야 방향에 따른 이동 속도가 같아진다 (안하면 대각선 이동시 위로는 1속도 오른쪽으론 1.2 속도 로인해 오른쪽으로 좀더 많이 가는 현상이 발생함)
- Vector2 randomPosition = Random.insideUnitCircle;
public class MoveDice : MonoBehaviour
{
private float minForce = 3f;
private float maxForce = 7f;
private Rigidbody2D rb;
// Start is called before the first frame update
void Start()
{
rb = GetComponent<Rigidbody2D>();
float rotationAmount = Random.Range(minRotation, maxRotation);
transform.Rotate(0f, 0f, rotationAmount);
}
void Start()
{
ApplyRandomForce();
//여러번 호출하여 비슷한위치에서 여러번 흔들수도 있을듯함
}
void ApplyRandomForce()
{
//방향성 랜덤받기
Vector2 randomDirection = Random.insideUnitCircle.normalized;
//랜덤힘
float randomForce = Random.Range(minForce, maxForce);
//랜덤 방향으로 랜덤의 힘을 줌
rb.AddForce(randomDirection * randomForce, ForceMode2D.Impulse);
}
}
'TIL' 카테고리의 다른 글
팀 프로젝트 너도 할수 있어 pun rpc를 이용한 증강 만들기 (0) | 2023.11.10 |
---|---|
플레이어와 몬스터가 부딪힌후 밀릴때. (0) | 2023.11.09 |
유니티 new 인풋 시스템 을 이용한 게임 도중 코드로 키보드 좌우 방향 반대로 바꾸기 (0) | 2023.11.07 |
스크립터블 오브젝트를 사용하기 (0) | 2023.11.06 |
유니티 일정 범위 대상에게 일정 간격으로 상호작용하기 (1) | 2023.11.03 |