
* 플레이어가 점수를 얻을 수 있는 Coin과 진행을 방해하는 장애물을 배치했다. 코인은x축의 -1.5, 0, 1.5 의 위치에서 랜덤하게 생성되어야한다. 하지만 최소 5개 이상은 생성되어야 한다. 만약 모든 Coin이 각각 다른 x에 생성이 된다면 진행에 방해가 될것 같았다. Coin을 배치하는 방법을 두가지 생각해봤다. 1. 지면프리팹으로 생성되어있는 Area의 랜덤한 x의 위치에 z축으로 1f의 간격을 두고 생성하기. 2. 지면프리팹의 자식 오브잭트로 Coin과 장애물을 미리 배치하기. * 첫번째 방법으로 생성한다면 큰 문제점이 생긴다. 랜덤으로 생성되는 Coin의 위치로 인해 제어가 불가능함으로 스테이지 증가에 따른 난이도조절에 어려움이 생길 것 같았다. 두번째 방법인 지면프리팹에 자식오브잭트로 ..
* 게임이 시작되면 player는 z축으로 이동한다. 이때 player가 무한으로 이동할 수 있는 지면을 생성해 주어야한다. 미리 생성해놓은 지면 오브잭트를 프리팹화 한 후 AreaSpawner 오브잭트에서 일정 조건이 일치하면 무한으로 생성해주고 이미 지나간 지면은 파괴하게 만들어봤다. 1. AreaSpawner * Instantiate, Destroy 지면으로 쓰일 오브잭트의 길이는 z=20f로 미리 만들어 놓았다. 지면 오브잭트는 Awake 메소드에서 3개를 미리 생성한 후 플레이어가 일정 지점에 도달하면 기존의 지면을 Destroy 한 후 새로운 지면을 생성하게 만들었다. *Random.Range / System.Ramdom 프리팹으로 만들어 놓은 지면(Area)오브잭트들의 메테리얼을 모두 다르게..
# 터치슬라이드를 이용한 오브잭트 제어를 공부중이다. 먼저 이전에 오브잭트를 이동하는 방식에서 변경할 부분들이 있었다. 1. x 축을 기준으로 회전하면서 z축 방향으로 이동, 오브잭트가 지면보다 낮은 위치로 떨어지면 GameOver *Script private void Update() { this.transform.position += Vector3.forward * this.moveSpeed * Time.deltaTime; //z축(앞으로) 이동 this.transform.Rotate(Vector3.right * this.rotateSpeed * Time.deltaTime); // 회전 (x축을 기준으로) if(this.transform.position.y 0 && this.transform.posit..
# 3D환경에서 캐릭터를 이동하는 방식은 RigidBody와 Collider 컴포넌트를 이용하는 방법과 Character Controller 컴포넌트를 이용하는 방법이 있다. 이 두가지의 차이점과 장단점을 공부하는 중이다. 두 조건 모두 같은 연출을 만들고 차이를 비교해보자. 1. RigidBody와 Collider 컴포넌트를 이용 * RigidBody https://docs.unity3d.com/kr/2021.3/Manual/class-Rigidbody.html 리지드바디 - Unity 매뉴얼 Rigidbody 는 GameObject 가 물리 제어로 동작하게 합니다. 리지드바디는 힘과 토크를 받아 오브젝트가 사실적으로 움직이도록 해줍니다. 리지드바디가 포함된 모든 게임 오브젝트는 중력의 영향을 docs..