유니티

강화학습

[강화학습] 자동 주차 시뮬레이션 구현을 위한 Unity 환경 설정

▶️ 문제 상황 현재 졸업프로젝트에서 강화학습을 이용한 자동 주차 시뮬레이션을 구현하려고 한다. 시뮬레이션 환경은 Unity로, 강화학습 모델은 Python(Pytorch)을 이용해 구현할 예정이다. 내가 이번 주차에 맡은 역할은 Unity로 주차장 시뮬레이션 환경을 개발하는 것이다. 우리는 강화학습의 매 에피소드 마다 새로운 주차 환경을 제공함으로써, 다양한 환경에서 자동차가 주차를 학습할 수 있도록 해야 한다. 그렇기 때문에 매 에피소드 마다 주차 환경을 변경해주는 환경을 구현하고자 한다. 우리는 3가지 주차 방식(평행 주차, 전방/후방 주차)에 따라 어느 방식이 가장 효율적인지 확인해야 하기 때문에, 모든 주차 방식을 시행할 수 있는 환경을 만들고자 한다. ▶️ 구현 방법 먼저 아래와 같이 시뮬레이..

게임/Unity

Unity 2D ) 게임오브젝트 삭제 함수 Destroy()

게임오브젝트 삭제 방법 게임오브젝트 삭제 : Destroy() Destroy(); 오브젝트 삭제 함수로 매개변수에 입력되어 있는 오브젝트 or 컴포넌트를 삭제한다. 게임을 진행하는 도중 플레이어의 공격을 받아 사망하는 적 오브젝트, 플레이어와 부딪혀 플레이어가 획득하게 되는 아이템 오브젝트와 같이 게임에서 영구적으로 사라져야 할 때 이용 웬만해서 Destroy()를 이용해 컴포넌트를 삭제하는 것보다는, playerObject.GetComponent().enabled = false; 와 같이 컴포넌트를 삭제하지 않고 꺼두는 것을 권장한다. 다음은 Destroy()를 이용해 playerObject에 존재하는 PlayerController 컴포넌트를 삭제하는 코드이다. using UnityEngine; pub..

게임/Unity

Unity 2D) 게임오브젝트 물리와 충돌

Rigidbody2D : 2차원 공간에서 오브젝트의 물리와 중력을 담당하는 컴포넌트 Collider2D : 2차원 공간에서 오브젝트의 충돌 범위를 나타내는 컴포넌트 코드 설명에 앞서... 게임오브젝트의 컴포넌트 정보에 접근하는 방법 1. 자신이 게임오브젝트의 컴포넌트 정보에 접근하는 방법 GetComponent(); 2. 자신이 소속되지 않은 게임오브젝트의 컴포넌트 정보에 접근하는 방법 게임오브젝트.GetComponent() 와 같이 코드를 작성하여 게임오브젝트의 컴포넌트에 접근가능하다. 두 오브젝트가 충돌하려면? 서로 다른 두 오브젝트가 충돌하기 위한 필수 조건 1. 두 오브젝트 모두 충돌 범위인 Collider2D 컴포넌트를 가지고 있어야 한다. 2. 둘 중 하나 이상의 오브젝트가 물리 처리를 담당하..

게임/Unity

Unity 이벤트 함수

1. 초기화를 위한 이벤트 함수 Awake(), Start(), OnEnable() 2. 업데이트를 위한 이벤트 함수 Update(), LateUpdate(), FixedUpdate() 3. 오브젝트 파괴를 위한 이벤트 함수 OnDestroy() 4. 종료를 위한 이벤트 함수 OnApplicationQuit(), OnDisable() 1. 초기화를 위한 이벤트 함수 초기화 함수 호출 순서 : Awake() -> OnEnable() -> Start() Awake() private void Awake() { Debug.Log("Awake함수가 실행되었습니다."); } - 현재 씬에서 게임오브젝트가 활성화 되어 있을 때 1회 호출(활성화되는 시점에 호출) Start() private void Start() {..

당찬 뱁새
'유니티' 태그의 글 목록