회원 로그인
|
오리 잡자 게임
오리 잡자 게임 (OOP 이해)
Unity v5.3.1 |
왼쪽에서 오른쪽으로 랜덤으로 오는 오리를 과녁에 올때 쏘면 점수가 올라가는 게임
*클래스 이해 및 2D 캐릭터 움직임, 충돌체
CDuck.cs
CDuckGenerator.cs
CGameManager.cs
CGun.cs
CTargetPoint.cs
*클래스 이해 및 2D 캐릭터 움직임, 충돌체
CDuck.cs
using UnityEngine; using System.Collections; // 오리 클래스 public class CDuck : MonoBehaviour { // 오리 이동 속도 public float _speed; // 오리 이동 방향 public Vector2 _dir; // 오리 생성기 참조 public CDuckGenerator _duckGenerator; bool _isDie = false; void Start () { // 오리 생성기를 참조함 _duckGenerator = GameObject.Find("DuckGenerator"). GetComponent<cduckgenerator>(); } void Update () { Move(); // 이동하라 } // 이동 메소드 void Move() { if (_isDie == true) return; // 방향 * 속도 * 프레임당보간시간 transform.Translate(_dir * _speed * Time.deltaTime); // 오리가 오른쪽으로 좌표 8축을 넘으면 사망 시킴 if (transform.position.x >= 8) { Die(); } } // 타격 메소드 public void Hit() { Die(); } // 사망 메소드 void Die() { _isDie = true; // 오리 생성기에게 오리를 생성하라고 요청함 _duckGenerator.GenerateDuck(); // 오리는 파괴짐 Destroy(gameObject); } }
CDuckGenerator.cs
using UnityEngine; using System.Collections; // 오리 생성기 public class CDuckGenerator : MonoBehaviour { // 오리 게임 오브젝트의 정보를 가진 파일 참조(포인터) public Object[] _duckPrefabs; // Use this for initialization void Start () { GenerateDuck(); } // 오리 생성을 요청함 public void GenerateDuck() { // 랜덤 범위를 뽑아서 int randNum = Random.Range(0, 10); // 70% 확률로 1번 타입 오류를 if (randNum < 7) { Instantiate(_duckPrefabs[0], new Vector3(-8, 0, 0), Quaternion.identity); } else // 30% 확률로 2번 타입 오류를 { Instantiate(_duckPrefabs[1], new Vector3(-8, 0, 0), Quaternion.identity); } // 생성 하라 } }
CGameManager.cs
using UnityEngine; using System.Collections; // 유니티 UI 사용 using UnityEngine.UI; public class CGameManager : MonoBehaviour { void Start() { Invoke("GameEnd", 20f); } // 스코어 점수 출력 텍스트 public Text _scoreText; // 스코어 올리기 public void ScoreUp(int addScore) { // 문자열로된 스코어 점수를 숫자로 변경함 int score = int.Parse(_scoreText.text); // 스코어를 10점 올림 score += addScore; // 숫자로 계산한 점수를 문자열 형태로 표시함 _scoreText.text = score.ToString(); } void GameEnd() { Application.LoadLevel("End"); } }
CGun.cs
using UnityEngine; using System.Collections; // 총 클래스 public class CGun : MonoBehaviour { // 타겟 포인트의 참조 변수 public CTargetPoint _tagePoint; void Update () { DoShot(); } void DoShot() { // 스페이스바를 누르면 if (Input.GetKeyDown(KeyCode.Space)) { // 타겟 -> 샷()!! _tagePoint.Shot(); } } }
CTargetPoint.cs
using UnityEngine; using System.Collections; // 발포 위치 포인트 클래스 public class CTargetPoint : MonoBehaviour { // 게임 매니저를 참조함 public CGameManager _gameManager; // 타겟 발사 public void Shot() { // Z+ 방향으로 0.2f 넓이의 충돌 레이저를 발사!!! Collider2D duckCollider = Physics2D.OverlapCircle(transform.position, 0.2f); // 충돌체가 존재한다면 if (duckCollider != null) { // 오리 타격 메소드 호출 CDuck duck = duckCollider.GetComponent<cduck>(); duck.Hit(); if (duckCollider.tag == "Duck1") { // 타격이 성공했으므로 점수를 촐림 _gameManager.ScoreUp(10); } else if (duckCollider.tag == "Duck2") { // 타격이 성공했으므로 점수를 촐림 _gameManager.ScoreUp(50); } } } }
- hunted_duck.unitypackage (618KB) (0)
댓글 0개
| 엮인글 0개
146개(4/8페이지)
번호 | 제목 | 글쓴이 | 조회 | 날짜 |
---|---|---|---|---|
유니티 강좌 모음(영문) | 푸딩뱃살 | 60280 | 2013.08.28 12:02 | |
유니티 경고, 에러 모음 (재정리 예정) [1+1] | 푸딩뱃살 | 71071 | 2013.08.12 00:09 | |
84 | [유니티] 게임에 로그인 붙이기 [2+1] | 푸딩뱃살 | 5595 | 2015.12.02 20:55 |
83 | [스트립트] Json Parser (파싱) | 푸딩뱃살 | 1415 | 2015.11.25 11:24 |
82 | [유니티] 플랫포머(Platformer) 게임 [1+1] | 푸딩뱃살 | 4588 | 2015.11.22 11:56 |
81 | [유니티] 2D 슈팅 게임3 | 푸딩뱃살 | 4786 | 2015.11.20 10:31 |
80 | [유니티] Fly Plane 게임 | 푸딩뱃살 | 5301 | 2015.11.17 23:01 |
79 | [유니티] 2D 슈팅 게임2 | 푸딩뱃살 | 4160 | 2015.11.13 01:01 |
78 | [유니티] 2D 슈팅 게임 | 푸딩뱃살 | 5713 | 2015.11.12 02:08 |
77 | [유니티] 2D 캐릭터 이동 컨트롤 (애니메이션) [6+4] | 푸딩뱃살 | 13218 | 2015.11.10 22:01 |
76 | [유니티] 탱크 게임2 | 푸딩뱃살 | 4412 | 2015.11.10 21:54 |
75 | [유니티] 탱크 게임 | 푸딩뱃살 | 4004 | 2015.11.09 23:36 |
>> | [유니티] 오리 잡자 게임 | 푸딩뱃살 | 4342 | 2015.11.07 02:00 |
73 | [유니티] 2D 캐릭터 키 애니메이션 | 푸딩뱃살 | 3982 | 2015.11.06 00:54 |
72 | [유니티] 가위바위보 게임 [2+2] | 푸딩뱃살 | 5756 | 2015.11.04 23:49 |
71 | [참고] Xbox360 컨트롤러 레이아웃 | 푸딩뱃살 | 4625 | 2015.10.21 18:52 |
70 | [유니티] 애셋 스토어에서 다운로드 받은 경로 (v5.x) | 푸딩뱃살 | 4282 | 2015.08.03 17:08 |
69 |
[유니티] |
푸딩뱃살 | 8574 | 2015.06.12 17:18 |
68 | [정보] Unity 5.x 부터는 | 푸딩뱃살 | 4701 | 2015.03.16 21:46 |
67 | [참고] Unity 3.x Game Development Essentials | 푸딩뱃살 | 8 | 2015.02.25 16:57 |
66 | [스트립트] Camera.ScreenPointToRay | 푸딩뱃살 | 4311 | 2015.01.11 21:08 |
65 | [유니티] Camera (카메라) | 푸딩뱃살 | 1901 | 2015.01.10 15:17 |