[Unity] Random

ChangJin·2024년 2월 19일
0

Unity

목록 보기
14/17
post-thumbnail

공식문서를 참고해보면...

https://docs.unity3d.com/530/Documentation/ScriptReference/Random.html
https://docs.unity3d.com/530/Documentation/ScriptReference/Random.Range.html
https://docs.unity3d.com/ScriptReference/Random.InitState.html
https://docs.unity3d.com/kr/2022.3/Manual/TimeFrameManagement.html


Random

  • 유니티에서 랜덤 함수로 특정 범위에서의 난수를 만들고 싶을 때 사용합니다.
  • Seed를 넣어주지 않으면 게임 시작때마다 같은 난수를 만들기 때문에 Seed를 계속 바꾸어 주어야 합니다.

Start함수에서 현재 시간을 Random의 Seed로 넣어 초기화 해주는 예제

    private long tick;
    private float timeSeed;

    private void Start()
    {
        tick = DateTime.Now.Ticks;
        timeSeed = (int)(tick % int.MaxValue); // int 범위 내로 값을 조정
        Random.InitState((int)timeSeed);
        setRandomLine();
    }

DateTime

  • 위에서 DateTime을 사용했는데 Tick을 사용하면 더욱 정밀한 시간을 얻을 수 있습니다.
  • Tick을 사용해서 Random.Seed에 넣어주면 현재 시간을 기준으로 하기 때문에 랜덤하게 난수를 만들어 낼 수 있습니다.
    - Tick
    • 1 s = 1000 ms
    • 1 ms = 10,000 ticks
    • 1 sec = 10,000,000 ticks
  • 보통 GameObject의 이동을 구현할 때 Time.Time, Time.deltaTime을 많이 사용합니다.
    • Time.time은 프로젝트 재생 시작 후 경과한 시간 초 단위로 반환합니다.
    • Time.deltaTime은 마지막 프레임이 완료된 후 경과한 시간을 초 단위로 반환합니다. 이 값은 게임이나 앱이 실행될 때 초당 프레임(FPS) 속도에 따라 다릅니다.
profile
게임 프로그래머

0개의 댓글

관련 채용 정보