728x90
728x90
Translate와 Rotate함수는 비물리 오브젝트의 위치값과 회전값을 변경하는데 사용하는 3차원 변형 함수이다. transform.Translate는 얼만큼 이동할 것인가를 나타내며 Vector3(변수) 좌표로 지정해주어야 한다. -transform.position(Vector3(0,0,1) : 오브젝트가 정확히 x축 0, y축 0, z축 1로 이동된다. -trasform.Translate(Vector3(0,0,1) : 오브젝트를 현 위치에서 z축으로 1로 만큼 움직인다. Rotate()함수도 위와 동일한 개념이다. 위 함수들은 월드축이 아니라 Local축을 기준으로 한다는 점을 유의할 것. 또한 Collider가 적용된 충돌체(물리와 상호작용하는 오브젝트)에서는 Translate와 rotation함..
Enable() & Disable()함수를 활용한 컴포넌트 활성화 Enable/Disable함수는 오브젝트에 적용된 컴포넌트의 활성화 및 비활성화 여부를 설정하는 함수이다. 위 코드는 myLight에 Light 컴포넌트를 가져오고, enalbed을 적용하여 인스펙터 창에서 쉽게 켜고 끌 수 있는 토글 스위치처럼 만들었다.(bool 형식을 가져온 것) 그리고 Input.GetKeyUp(KeyCode.Space)를 적용하여, Space바를 눌러 Light 컴포넌트를 쉽게 활성화/비활성화 하도록 설정하였다. SetAcitve() 함수를 활용한 오브젝트 활성화 SetAcitve함수는 오브젝트의 활성화/비활성화 여부를 가져오는데 마찬가지로 bool 형식을 따른다. Enabled/Disabled함수는 오브젝트에 적..
RPG게임을 하다보면 캐릭터를 이동시킬 때 클릭한 좌표로 캐릭터가 장애물들을 피해 이동하게 된다. 이처럼 플레이어가 장애물을 피해 특정 좌표를 향해 최단거리로 이동하는 기능을 유니티에서 제공하고 있다. 유니티에서 제공하는 NavMesh AI를 활용하여 장애물 오브젝트들과 Enemy를 피해 움직이는 player 미니게임을 만들어보기러 했다. 플레이 범위는 Walls 내로 좁혔고, Sphere/Cube/Cylinder 장애물들을 배치했다. 먼저 PlayMode에서 좌클릭 시 해당 좌표로 플레이어가 이동하는데 배치된 장애물들을 피해 최단 동선으로 찾아가는 Navigation AI를 사용해야 한다. Window - AI - Navgation에 들어가면 우측 Inspector 창 옆에 Navigation 창이 새..
Update()함수는 현재 씬의 실행 후 컴포넌트가 활성화 되있을 때 매 프레임마다 함수를 호출한다. 실행을 멈추지 않는 이상 로그들이 콘솔 창에 계속 실행된다. 보통 물리 효과가 적용되지 않는 오브젝트들의 움직임이나 단순한 타이머, 키 입력을 받을 때 사용된다. FixedUpdate()함수는 Update()함수와 유사하지만 Regurlar Timeline을 가지고 있다는 차이점이 있다. (time.deltatime)프레임의 영향을 받지 않고, TimeStep에 설정된 값에 따라 일정한 간격으로 호출되는 것 보통 Physics caculation을 진행해야 할 때 FixedUpdate함수를 사용하는데 여기서 Physics caculation이란 rigidbody 같은 컴포넌트들을 의미한다. 즉, 물리 효..
Awake()함수는 가장 먼저 호출되는 함수로서 인스펙터 창의 컴포넌트 스크립트가 비활성화되어 있어도 실행이 된다. 보통은 데이터를 초기화할 때 사용하는 함수 Start()함수는 Awake함수가 실행된 후 곧바로 1회 호출되는 함수, 하지만 컴포넌트 내 스크립트가 비활성화되어 있으면 실행되지 않는다. 역시 초기화를 위한 이벤트 함수 중 하나라고 보면 된다. + Start()함수는 앞으로 어떤 메서드를 사용할 건지 참조하는 기능을 수행하기 도 한다. 추가적으로 OnEnable함수는 컴포넌트가 비활성화되어있다가 활성화 될 때 1회 호출되는 함수 초기화 함수 호출 순서는 Awake() -> OnEnable() -> Start() Debug.Log는 함수를 실행됬을 때 어떤 결과값이 나오는지를 보여주는 기능 수행
Access Modifiers(접근 한정자)는 객체지향에서 공개하고 싶은 것은 공개하고, 은닉하고 싶은 것은 은닉할 수 있도록 코드를 수식하며 필드, 메서드, 프로퍼티 등 모든 요소에서 사용 가능하다. 접근 한정자를 사용하여 클래스 외부에서 직접적인 접근을 허용하지 않는 멤버를 설정하여 정보를 공개/은닉할 수 있다. 접근 한정자로 수식하지 않은 클래스의 멤버는 무조건 private으로 접근 수준이 자동 지정되는 특징이 있다. 즉, 클래스 내의 멤버를 일단 감추고 나중에 공개할지를 결정하는 것이 순서이다. C#에서 제공하는 접근 한정자는 6가지 접근 한정자 설명 public 클래스의 내/외부 모든 곳에서 접근을 허용할 수 있다. 클래스 멤버가 외부로 공개되며, 해당 객체를 사용하는 어떤 프로그램에서도 직접..