1. 게임 오브젝트 만들기
1) create empty > rename > Stage
2) Stage 의 자식으로 큐브 오브젝트 Start 만듦 > Reset > Scale (10 1 10)
3) Assets > Materials 폴더생성 > create > material > rename : mStart
4) start object에 mStart 드래그앤드롭
5) start object > Inspector > mStart 화살표 활성화 > Albedo > 색상설정.
6) MyBall sphere object 생성.
7) MyBall > reset > position (0 1 0) > Rigidbody 컴포넌트 추가
8) mMyBall Material 만들기 > 연동 > 색상바꾸기
9) Scripts 폴더 생성 > MyBallController.cs 스크립트 생성 > MyBall object 연동
2. MyBallController.cs 코딩
- 변수선언
- AddForce = Rigidbody에 힘을 줌.
(1(normalized)인 단위벡터로 안만들면 속도가 너무 빨라짐! _fSpeedPower는 내가원하는 속도값)
3. 카메라 포지션
(0 17 -3, 80 0 0, 1 1 1)
* transform.position; // 절대위치
* transform.Translate(); // 상대위치 (기준점: position) 헷갈림,,,
자식의 위치는 로컬좌표 -> 글로벌로 바꾸기 위해선 함수가 필요함.
//중력의 적용을 받음 -> 대부분 가벼운 게
* Rigidbody.AddForce();
* Rigidbody.velocity; .//addforce에 의해 velocity가 정해지나 둘은 분명 다름.
4. 속도제한하기
- 변수선언
public float _fSpeedMax = 3.0f; //속도를 제한하는 코드
- 함수
* magnitude
5. 프리팹만들기 (end생성)
1) create > prefabs 폴더생성 > start 오브젝트 드래그앤드롭
2) start 프리팹을 stage object로 드래그앤드롭 > rename : End
3) End > Inpector (0 0 30, 0 180 0, 10 1 10)
6. Start와 End를 연결하는 길 만들기
stage 자식으로 > 큐브생성 > rename : Road (0 0 15, 0 0 0 , 2 1 20)
7. 카메라 움직이기
1) CameraController 스크립트 생성 > Main Camera 오브젝트와 연동
2) 코드추가
3) myBall 오브젝트를 MainCamera 오브젝트 > Inspector > CameraController myball 에 드래그앤드롭.
- Time.deltaTime * 4.0f -> 를 조정함으로써 카메라 속도 조절 가능
- Lerp(A, B, 0~1)
4. 바닥만들기
1) plane object 생성 > rename : Floor > (position : 0 -3 0, Scale : 100 1 100)
2) mFloor material 만들고 > 검은색
3) Floor > Inspector > Layer > Add layer... > 8번에 Floor 입력
4) Floor > Inspector > Layer : Floor (기본값 : Default)
-> layer - 게임 오브젝트를 구분하기위함.
5. 충돌후 재시작 코드추가
using UnityEngine.SceneManagement;
* tag 와 layer 의 다른점
tag는 전체 하이라키에서 뭔가를 찾을 때 사용 할 수 있고
layer는 if문과 같은 조건문에서 사용
6. Start Trigger 만들기 - 시작위치를 막히게함
1) Stage 자식으로 > cube object > rename : startTrigger
transform(0 1 5, 0 0 0, 10 1 1)
2) StartTrigger Layer 생성.
- layer : starttrigger 설정
- Inspector > Mesh Renderer 비활성화 > Box Collider > Is Trigger 체크
(Is Trigger가 비활성화 돼있으면 충돌함)
3) MyBallController 코드 추가
Is Trigger를 체크했을 때 위의 함수가 호출됨!
7. Start 화면에 표시하기
1) UI object > Text 생성 > rename : TextStartAndClear
2) TextStartAndClear > Inspector > anchor > top-center 선택
3) Pos (0 -200 0) Width(200), Height(80), Scale(2 2 1)
4) 글씨 설정 임의대로 변경
5) MyBallController.cs 수정
6) MyBall > Inspector > text웅앵에 TextStartAndClear 연동
-> 실행했을때 텍스트가 화면에 뜨지 않아야 정상
-> 이코드는 충돌박스가 있더라도 안부딪힘!!!!!
-> 화면에 안보이는데 충돌하고 싶다면 (mesh Rederer 만 해제하면 됨)
* 화면에 보이고 안보이고 설정
8. Start Coroutine 만들기
1) 코드추가 - MyBallController.cs
9. End Trigger 만들기
1) transform (0 1 25, 0 0 0, 10 1 1)
2) End Trigger Layer 만들고 설정
2) Mesh Rendere 비활성화 - Is Trigger 체크 (OnTrigger 발동)
안하면 (OnCollision 발동)
3) 코드추가 - MyBallController.cs
- StartTrigger 와 EndTrigger 를 각각의 start, end 오브젝트에 드래그앤드롭 (자식)
10. 골드 만들기
1) Gold라는 이름의 Cylinder Object 생성.
transform (0 1 0, 90 0 40, 0.5 0.05 0.5)
2) mGold라는 material 생성 후 색 변경 > Gold object에 연동
3) Inspector > Is Trigger 체크 (트리거라는 이벤트는 날리되, 충돌처리 X)
4) Gold Layer 추가 후 설정.
5) prefab으로 드래그앤 드롭 > 기존 Gold 지우기.
6) 마음대로 복사해서 길위에 뿌림
7) 코드 작성 - OnTriggerEnter (트리거에 충돌하자마자 발동하는 함수)
11. 골드 점수 생성하기
1) UI > Text > TextGold 생성
2) 위치설정 : top-center
3) 텍스트 모양과 색 사용자 임의대로 설정
4) MyBallController.cs 코드추가
5) MyBall > Inspector > Text Gold 칸으로 Text Gold 연동.
12. 획득 이펙트 설정하기
1) Asset Store >
2) 이펙트 하이라키창으로 드래그앤 드롭
3) MyBallController.cs 코드추가
public ParticleSystem _particleGoldEffect; // 객체 선언
4) 연동
'Unity' 카테고리의 다른 글
0620 Scene Loading (0) | 2019.06.20 |
---|---|
0620 GyroBall 2 (0) | 2019.06.20 |
0619 Flappy Bird (0) | 2019.06.19 |
0618 Flappy Bird (Mini Game) (0) | 2019.06.18 |
0618 유니티기초2 (0) | 2019.06.18 |