회원 로그인
|
2D 슈팅 게임
2D 슈팅 게임
Trigger, Collider 이해
CPlayerShip.cs
CMeteorGenerator.cs
CMeteor.cs
CLaser.cs
CDestroyer.cs
CBurst.cs
Trigger, Collider 이해
CPlayerShip.cs
using UnityEngine; using System.Collections; public class CPlayerShip : MonoBehaviour { public float _speed; // 이동 속도 public Object _laserPrefab; // 레이저 프리팹 public Transform _ShotPos; // 레이저 발사 위치 void Update() { Move(); // 이동 Shot(); // 레이저 발사 } // 이동 void Move() { // 방향키 입력 float h = Input.GetAxis("Horizontal"); float w = Input.GetAxis("Vertical"); // 이동 transform.Translate(Vector3.right * h * _speed * Time.deltaTime); // 위치 이동 제한 Vector2 _pos = transform.position; // x,y를 가진 Vector2형 pos 변수 if (_pos.x <= -6f) _pos.x = -6f; // 좌측 제한, -6보다 작으면 계속 x값에 -6 if (_pos.x >= 6f) _pos.x = 6f; // 우측 제한, 6보다 크면 계속 x값에 6 transform.position = _pos; // 게임오브젝트 position에 대입 } // 발사 void Shot() { // 스페이스바를 누르면 if (Input.GetKeyDown(KeyCode.Space)) { // 게임오브젝트 생성 (레이저 생성/발사) // _ShotPos.position 또는 스프라이트의 피봇을 움직여 위치함 Instantiate(_laserPrefab, _ShotPos.position, Quaternion.identity); } } }
CMeteorGenerator.cs
using UnityEngine; using System.Collections; // 운석 생성기 public class CMeteorGenerator : MonoBehaviour { public Object _meteorPrefab; // 운석 프리펩 void Start () { // 0.8초마다 운석을 생성 / 타이밍 InvokeRepeating("MeteorGenrate", 3, 0.8f); } // 운석 생성 void MeteorGenrate() { // 운석 생성 위치 int pointNum = Random.Range(1, 14); // 위치 참조 GameObject spawnPoint = GameObject.Find("SpawnPoint" + pointNum.ToString()); // 운석 생성 Instantiate(_meteorPrefab, spawnPoint.transform.position, Quaternion.identity); } }
CMeteor.cs
using UnityEngine; using System.Collections; public class CMeteor : MonoBehaviour { public int _hp; // 체력 public float _speed; // 이동 속도 public Object _burstPrefab; // 피격 프리팹 void Start () { _hp = Random.Range(1, 4); // 랜덤 체력 } void Update () { // 이동 transform.Translate(Vector2.down * _speed * Time.deltaTime); } // 운석이 무언가와 충돌함 // Meteor의 BoxCollider2D void OnTriggerEnter2D(Collider2D collider) { // 게임오브젝트 구분 // 하이어라키의 이름명으로 구분(Instantiate으로 생성된 Clone 들), 태그로 구분 if (collider.name == "Laser(Clone)") // Clone까지 이름이 모두 포함되어야 함 { // 운석 피격 이펙트 생성 Instantiate(_burstPrefab, collider.transform.position, Quaternion.identity); // 레이저 파괴 Destroy(collider.gameObject); _hp--; // 운석 체력을 감소함 // 운석 파괴 if (_hp <= 0) Destroy(gameObject); } } }
CLaser.cs
using UnityEngine; using System.Collections; public class CLaser : MonoBehaviour { public float _speed; // 레이져 스피드 void Update () { // 레이저 이동 transform.Translate(Vector2.up * _speed * Time.deltaTime); } }
CDestroyer.cs
using UnityEngine; using System.Collections; public class CDestroyer : MonoBehaviour { // 게임오브젝트 파괴자와 충돌하면 모든 오브젝트를 제거함 (2D) // Meteor의 Box Collider2D, Is Trigger on - 운석끼리 충돌로 이동 오류 해결? // 서로 충돌하지 않지만 충돌값은 받음 void OnTriggerEnter2D(Collider2D Collider) { Destroy(Collider.gameObject); } /* Meteor의 Box Collider2D, Is Trigger off - 운석끼리 충돌로 이동 오류 // 충돌, 충돌값 받음 void OnCollisionEnter2D(Collision2D collision) { Destroy(collision.gameObject); } */ }
CBurst.cs
using UnityEngine; using System.Collections; public class CBurst : MonoBehaviour { void Start () { // 효과 제거(0.1f 타이머) Destroy(gameObject, 0.1f); } }
- 2D_Shooting_Game.unitypackage (1.6MB) (0)
댓글 0개
| 엮인글 0개
146개(4/8페이지)
번호 | 제목 | 글쓴이 | 조회 | 날짜 |
---|---|---|---|---|
유니티 강좌 모음(영문) | 푸딩뱃살 | 60285 | 2013.08.28 12:02 | |
유니티 경고, 에러 모음 (재정리 예정) [1+1] | 푸딩뱃살 | 71081 | 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] | 푸딩뱃살 | 4589 | 2015.11.22 11:56 |
81 | [유니티] 2D 슈팅 게임3 | 푸딩뱃살 | 4786 | 2015.11.20 10:31 |
80 | [유니티] Fly Plane 게임 | 푸딩뱃살 | 5302 | 2015.11.17 23:01 |
79 | [유니티] 2D 슈팅 게임2 | 푸딩뱃살 | 4160 | 2015.11.13 01:01 |
>> | [유니티] 2D 슈팅 게임 | 푸딩뱃살 | 5714 | 2015.11.12 02:08 |
77 | [유니티] 2D 캐릭터 이동 컨트롤 (애니메이션) [6+4] | 푸딩뱃살 | 13218 | 2015.11.10 22:01 |
76 | [유니티] 탱크 게임2 | 푸딩뱃살 | 4412 | 2015.11.10 21:54 |
75 | [유니티] 탱크 게임 | 푸딩뱃살 | 4005 | 2015.11.09 23:36 |
74 | [유니티] 오리 잡자 게임 | 푸딩뱃살 | 4342 | 2015.11.07 02:00 |
73 | [유니티] 2D 캐릭터 키 애니메이션 | 푸딩뱃살 | 3982 | 2015.11.06 00:54 |
72 | [유니티] 가위바위보 게임 [2+2] | 푸딩뱃살 | 5757 | 2015.11.04 23:49 |
71 | [참고] Xbox360 컨트롤러 레이아웃 | 푸딩뱃살 | 4627 | 2015.10.21 18:52 |
70 | [유니티] 애셋 스토어에서 다운로드 받은 경로 (v5.x) | 푸딩뱃살 | 4283 | 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 | 푸딩뱃살 | 4312 | 2015.01.11 21:08 |
65 | [유니티] Camera (카메라) | 푸딩뱃살 | 1902 | 2015.01.10 15:17 |