유니티 빗물 받는 르탄이 만들기 #3 비 내리기 (오브젝트 관리)
작성자 정보
- 마스터 작성
- 작성일
컨텐츠 정보
- 593 조회
- 목록
본문
빗물 받는 르탄이 만들기 과정
목차
1.유니티 씬 설정하기
2.캐릭터 움직이기
3.비 내리기 (오브젝트 관리)
4.충돌 구현
5.UI 구성
6.게임오버 구현
1.Hieracrchy 패널에서 rain 생성
1-1 하이라키 패널에서 마우스 오른쪽 클릭 > 2D object > Sprites > Circle 선택
1-2 생성 후 오브젝트의 이름을 rain로 변경
1-3 오른쪽 Inspector 탭의 Sprite Renderer에서 Color를 150, 150, 255, 255로 맞추기
1-4 Position X : 0 Y : 4 Z : 0
1-5 오른쪽 Inspector 탭 하단에 있는 Add Component에서 rigidbody 2D 선택하기
ㄴ rigidbody 2D는 오브젝트가 중력의 영향을 받게 해주는 기능이다.
2.rain.cs 스크립트 생성하기
2-1 Project패널에서 create > C# script 선택
2-2 이름을 rain으로 바꾸기
2-3 rain.cs 작성하기
3.rain.cs
3-1 전체 코드
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class rain : MonoBehaviour
{
int type; //타입
float size; //사이즈
int score; //점수
// Start is called before the first frame update
void Start()
{
float x = Random.Range(-2.7f, 2.7f);
float y = Random.Range(3.0f, 5.0f);
transform.position = new Vector3(x, y, 0);
//1~3까지
type = Random.Range(1, 5);
if (type == 1){
size = 1.2f;
score = 3;
GetComponent<SpriteRenderer>().color = new Color(100 / 255f, 100 / 255f, 255 / 255f, 255 / 255f);
}else if (type == 2){
size = 1.0f;
score = 2;
GetComponent<SpriteRenderer>().color = new Color(130 / 255f, 130 / 255f, 255 / 255f, 255 / 255f);
}else if (type == 3)
{
size = 0.8f;
score = 1;
GetComponent<SpriteRenderer>().color = new Color(150 / 255f, 150 / 255f, 255 / 255f, 255 / 255f);
}
else
{
size = 1.0f;
score = -5;
GetComponent<SpriteRenderer>().color = new Color(255 / 255f, 0 / 255f, 0 / 255f, 255 / 255f);
}
transform.localScale = new Vector3(size, size, 0);
}
// Update is called once per frame
void Update()
{
}
//충돌 이벤트 처리
void OnCollisionEnter2D(Collision2D coll)
{
if (coll.gameObject.tag == "ground"){
Destroy(gameObject);
}
if(coll.gameObject.tag == "rtan"){
gameManager.i.addScore(score);
Destroy(gameObject);
}
}
}
3-2 void Start()에서 초기 위치 값을 랜덤하게 바꿔줌
float x = Random.Range(-2.7f, 2.7f);
float y = Random.Range(3.0f, 5.0f);
ㄴ Random.Range(최소값, 최대값); 최소값과 최대값 사이이의 랜덤한 수를 출력함
transform.position = new Vector3(x, y, 0);
ㄴ 랜덤한 값을 변수로 받아 초기 값으로 셋팅해줌
3-3 type에 따라 형태 및 점수를 바꾸는 비를 셋팅하기
type = Random.Range(1, 5);
ㄴ 랜덤한 int값을 받음 (1~4)
if (type == 1){
size = 1.2f;
score = 3;
GetComponent<SpriteRenderer>().color = new Color(100 / 255f, 100 / 255f, 255 / 255f, 255 / 255f);
}else if (type == 2){
size = 1.0f;
score = 2;
GetComponent<SpriteRenderer>().color = new Color(130 / 255f, 130 / 255f, 255 / 255f, 255 / 255f);
}else if (type == 3){
size = 0.8f;
score = 1;
GetComponent<SpriteRenderer>().color = new Color(150 / 255f, 150 / 255f, 255 / 255f, 255 / 255f);
}else{
size = 1.0f;
score = -5;
GetComponent<SpriteRenderer>().color = new Color(255 / 255f, 0 / 255f, 0 / 255f, 255 / 255f);
}
ㄴ GetComponent<SpriteRenderer>().color를 통해 해당 컴포넌트의 spriteRenderer에 접근하여 color의 값을 변경함 색을 바꿀수 있음
transform.localScale = new Vector3(size, size, 0);
ㄴ transform.localScale 해당 오브젝트의 스케일에 접근하여 사이즈를 바꿔줌
3-4. 생성한 rain.cs를 rain 오브젝트에 연결한다.
4.rain 프리팹 생성하기
4-1 Project패널에서 create > folder 선택
4-2 폴더 이름을 perfabs으로 바꾸기
4-3 Hierarchy패널에 있는 rain 오브젝트를 perfabs폴더로 드래그 앤 드롭 하기
4-4 rain프리탭 생성 완료 후 Hierarchy패널에 있는 rain 오브젝트는 삭제
5.gameManager오브젝트 및 gameManager.cs생성하기
5-1 하이라키 패널에서 빈 오브젝트 선택하기
5-2 이름을 gameManager으로 바꾸기
5-3 Project패널에서 create > C# script 선택
5-4 이름을 gameManager으로 바꾸기
5-5 gameManager.cs 작성하기
6.gameManager.cs
6-1 전체 코드
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class gameManager : MonoBehaviour
{
public GameObject rain;
void Start()
{
InvokeRepeating("makeRain", 0, 0.5f);
}
void Update()
{
}
void makeRain()
{
Instantiate(rain);
}
}
6-2 public gameObject rain;
ㄴ public을 사용하면 외부에서 접근이 가능하다
ㄴ gameObject을 사용하여 만든 rain 프리팹을 연결한다.
6-3 비를 만드는 함수 생성
void makeRain(){
Instantiate(rain);
}
ㄴ Instantiate()함수를 사용하여 오브젝트를 생성한다.
6-4 함수를 반복하여 실행하기
void Start(){
InvokeRepeating("makeRain", 0, 0.5f);
}
ㄴ InvokeRepeating(함수명, 지연시간, 반복주기);
ㄴ 함수를 지연시간초 후 부터 반복주기 간격으로 반복한다.
ㄴ 이를 통해서 비를 계속 내리게 할 수 있다.
6-5 생성한 gameManager.cs를 gameManager오브젝트에 연결한다.
관련자료
-
이전
-
다음