달력

22025  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

Update, FixedUpdate, LateUpdate 차이점



  • Update()
    • Update는 프레임마다 한번씩만 호출이 되는 기본적인 업데이트 입니다.

  • FixedUpdate()
    • FixedUpdate는 Update보다 자주 호출이 되는 경우가 있습니다.
    • 프레임 속도가 낮을 경우 프레임마다 여러번 호출이 가능합니다.
    • 프레임 속도가 높을 경우 프레임마다 호출을 할 수 없습니다.
    • FixedUpdate 직후에 모든 물리적 특성 계산 및 업데이트가 발생하므로 이동 계산을 적용 할때 Time.DeltaTime 값을 곱할 필요가 없습니다.
    • 독립된 업데이트 이므로 모두 영향을 받는 update와 달리 어떤것이든 동일한 주기로 업데이트 영향을 받는다.
    •  물리적용시 사용하면 좋습니다.

  • LateUpdate()
    • LateUpdate는 Update 후 프레임마다 한번씩 호출이 됩니다.
    • update에서 계산이 완료되면 해당 LateUpdate가 실행이 됩니다.
    • 특정 행동이 완전히 끝난 후 실행하고 싶은 행동이 있다면 해당 LateUpdate를 이용하는 것이 좋습니다.
    • 예로 들어 3인칭 카메라가 캐릭터를 따라 움직일시 update에서 캐릭터 이동 방향 계산이 끝난 후 카메라에 대한 계산은 LateUpdate에서 행동을 취하시면 됩니다.


Posted by JakeGD
|

Ray 사용법!


  • 필요한 변수

float distance;    -> 레이의 길이

RaycastHit rayHit;    -> Ray가 맞았다는걸 알려주는 변수

Ray ray;    -> 사용될 레이 변수



void Start () 

{

ray = new Ray();       -> new를 이용하여 레이를 하나 생성합니다.

ray.origin = this.transform.position;    -> 레이위치를 사용될 오브젝트위치에 적용합니다.

ray.direction = this.transform.forward;    -> 레이 방향을 사용될 오브젝트 방향으로 초기화 해줍니다.

}


팁 // 만약 실시간으로 값을 받고 싶다면 ray.origin과 ray.direction을 Update 메소드에 넣어주시면 됩니다.



레이와 오브젝트의 충돌함수는 아래와 같습니다.


if (Physics.Raycast(ray.origin, ray.direction, out rayHit, distance))

// 순서대로 레이의시작위치 / 레이의 방향 / 레이충돌 반환 / 레이 길이값

{

// 해당 위치에서 조건에 대한 코드를 작성하시면 됩니다.


Debug.Log(rayHit.collider.gameObject.name); // 충돌된 오브젝트 이름 디버그 로그로 출력

}


로그 확인 방법은 유니티에서 ctrl + shift + C 를 누르시면 나옵니다.



자 그렇다면 레이가 잘 발사되고 있는지 확인을 해보고 싶으시죠?


그러면 void OnDrawGizmos() 메소드를 이용하여 렌더를 해줍니다.


void OnDrawGizmos()

{

        Debug.DrawRay(ray.origin, ray.direction * distance, Color.red);

// 이와같이 Debug로 그려주시면 실제 게임에서는 표시되지 않고 디버그 모드에서만 설정된 

// 레드컬러로 레이가 발사 되는것을 확인 하실 수 있습니다.

}



아래 레이가 적용된 예시 화면


Posted by JakeGD
|

유니티에서 스크립트 에디터 변경하기


변경 경로

  • 유니티 좌측 상단 Edit -> Preference -> External Tools ->External Script Editor -> 원하는 에디터 선택


↓↓↓↓↓↓↓↓↓↓ 이해가 안가신다면! ↓↓↓↓↓↓↓↓↓↓



유니티의 좌측 상단 Edit 선택





Edit 리스트 중 Preferences... 선택




그럼 아래의 그림같이 Unity Preferences 창이 하나 등장 합니다.



1. External Tools 클릭

2. External Script Editor 에서 원하는 에디터 선택





짝짝짝! 


수고하셨습니다.!


Posted by JakeGD
|

C# 배열 사용법

C# 2017. 11. 30. 13:05

C#의 배열 사용법


  • 배열 형식
    • 데이터 형식[] 배열 이름 = new 데이터형식[용량]


  • 배열 초기화에는 3가지 방식이 존재 합니다.
    1.  int[] array = new int[3] {1, 2, 3};   - 배열의 용량을 명시
    2.  int[] array = new int[] {1, 2, 3};    - 배열의 용량 생략
    3.  int[] array = {1, 2, 3};


  • 2차원 배열 사용법
    • int[ , ]   -   대괄호[] 안에 콤마(,) 하나를 넣어주면 2차원배열이 됩니다.

자 그럼 3차원 배열도 예상이 가시죠?


  • 3차원 배열 사용법
    • int[ , , ]   -   대괄호[] 안에 콤마(,) 두개를 넣어주면 3차원 배열이 됩니다.

지금까지의 배열은 가로 세로가 정확한 배열이였지만 
정확하지 않은 배열은 어떻게 해야할까요?

가변 배열이라는 것이 존재합니다.


  • 가변 배열 사용법
    • 데이터형식[][] 배열이름 = new 데이터형식[가변배열용량][]
    • 사용법) int[][] jagged = new int[3][]
      1. jagged[0] = new int[5]{1, 2, 3, 4, 5}
      2. jagged[1] = new int[]{10, 20, 30}
      3. jagged[2] = new int[]{100, 200}


Posted by JakeGD
|