[Unity] Tutorials - Roll-a-Ball

[Unity] Tutorials - Roll-a-Ball

http://unity3d.com/learn/tutorials/modules/ 사이트에 접속합니다.

PROJECTS 들이 여러개 보이는데요. 그중에서 Beginner 난이도인 Roll-a-Ball을 보도록 하겠습니다.

기본 마우스 기능

오브젝트를 선택할 경우에는 Shift + 좌클릭

화면을 회전할 경우에는 Alt + 좌클릭

평행이동을 하고 싶을 경우에는 마우스 중클릭 을 해야 합니다.

Hierarchy

Scene

Hierachy 설명
Ground 바닥, 배경
Player 움직이는 공
Fill light 아래에서 비추는 빛
Main light 위에서 비추는 빛
Walls 동서남북 벽
PickUps 회전하는 정육면체
Win Text 승리 메시지
Count Text 점수

GUI Text

튜토리얼과 같이 GUI Text를 생성할 수 없습니다. Create Empty Object 후에 Component → Rendering → GUIText 를 추가해야 합니다

Assets

Prefabs

PickUp : pickup들에 공통적으로 스크립트를 적용합니다.

Scenes

MiniGame : 메인 화면

Scripts

CameraController

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using UnityEngine;
using System.Collections;

public class CameraController : MonoBehaviour {

public GameObject player;
private Vector3 offset;

// Use this for initialization
void Start () {
offset = transform.position;
}
// Update is called once per frame
void LateUpdate () {
transform.position = player.transform.position + offset;
}
}

PlayerController

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
using UnityEngine;
using System.Collections;

public class PlayerController : MonoBehaviour {

public float speed;
public GUIText countText;
public GUIText winText;
private int count;

void Start(){
count = 0;
SetCountText();
winText.text = "";
}

void FixedUpdate(){
float moveHorizontal = Input.GetAxis ("Horizontal");
float moveVertical = Input.GetAxis ("Vertical");

Vector3 movement = new Vector3 (moveHorizontal, 0.0f, moveVertical);

rigidbody.AddForce (movement * speed * Time.deltaTime);
}

void OnTriggerEnter(Collider other) {
if (other.gameObject.tag == "PickUp") {
other.gameObject.SetActive(false);
count++;
SetCountText();
}
}

void SetCountText(){
countText.text = "Count : " + count;

if (count >= 12) {
winText.text = "You WIN!";
}
}

}

Rotate

1
2
3
4
5
6
7
8
9
10
11
12
13
14
using UnityEngine;
using System.Collections;

public class Rotate : MonoBehaviour {

// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {

transform.Rotate (new Vector3 (15, 30, 45) * Time.deltaTime);
}
}

Build

Android

File → Build Settings → Player Settings'' 에서 ''Bundle Indentifier를 변경해야 합니다.

SDK 경로 변경은 Edit → Preferences → External Tools 에서 할 수 있습니다.

공유하기