학습 주제
랜덤으로 떨어지는 빗방울 만들기
학습 목표는 무엇입니까?
랜덤한 위치와 크기를 가진 오브젝트로 다양성을 주는 방법 알아내기
학습 내용
학습 내용을 작성해주세요
- GetComponent를 잊지 말자
- 에셋 내 컴포넌트를 가져오기 위해서는 두 가지가 필요하다
- 가져올 컴포넌트를 메인 함수에서 선언하기
- 작동 함수에서 GetComponent로 가져오기
public class Rain : MonoBehaviour { ... 중략 SpriteRenderer renderer; void Start() { renderer = GetComponent<SpriteRenderer>();
- 에셋 내 컴포넌트를 가져오기 위해서는 두 가지가 필요하다
- 랜덤 값을 만드는 Random.Range()
- Random.Range()는 시작 값, 끝 값으로 조정함
- 정수의 경우 시작 값, 끝 값 -1이 됨
float x = Random.Range(-2.4f, 2.4f); float y = Random.Range(3.0f, 5.0f); int type = Random.Range(1, 4);
- Sprite Renderer에서 색깔을 조정할 수 있음
- renderer.Color 속성으로 색 값을 변경 가능
- new Color(c,m,y,k) 값을 넣어 속성 지정
- 숫자 값은 number / 255f 형식으로 지정 가능
renderer.color = new Color(50 / 255f, 50 / 255f, 1f, 1f);
- transform 속성에서 위치와 크기를 바꾸자
- transform.position으로 위치 변경 가능
- float x = Random.Range(-2.4f, 2.4f); float y = Random.Range(3.0f, 5.0f); transform.position = new Vector3(x, y);
- transform.localScale로 크기 변경 가능
- else if (type == 3) { size = 1.2f; score = 1; renderer.color = new Color(150 / 255f, 150 / 255f, 1f, 1f); } transform.localScale = new Vector3(size, size, 0);
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Rain : MonoBehaviour
{
// 빗방울 기본 사이즈, 점수 설정
float size = 1.0f;
int score = 1;
SpriteRenderer renderer;
// Start is called before the first frame update
void Start()
{
renderer = GetComponent<SpriteRenderer>();
// 빗방울 위치 설정
float x = Random.Range(-2.4f, 2.4f);
float y = Random.Range(3.0f, 5.0f);
transform.position = new Vector3(x, y);
int type = Random.Range(1, 4);
Debug.Log($"타입 값은 --> {type}");
if (type == 1)
{
size = 0.8f;
score = 3;
renderer.color = new Color(50 / 255f, 50 / 255f, 1f, 1f);
}
else if (type == 2)
{
size = 1.0f;
score = 2;
renderer.color = new Color(100 / 255f, 100 / 255f, 1f, 1f);
}
else if (type == 3)
{
size = 1.2f;
score = 1;
renderer.color = new Color(150 / 255f, 150 / 255f, 1f, 1f);
}
transform.localScale = new Vector3(size, size, 0);
}
// Update is called once per frame
void Update()
{
}
private void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.CompareTag("Ground"))
{
Destroy(this.gameObject);
}
}
}
'So, What I Learned > 소프트웨어 개발' 카테고리의 다른 글
[iOS App] Xcode 튜토리얼 (0) | 2024.07.02 |
---|---|
[AI-RAG] 환경 세팅과 Chat Completion 시도 (0) | 2024.07.02 |
[WIL] Unity - 빗방울 게임 - 오브젝트 충돌 구현 (0) | 2024.06.18 |
[WIL] Unity - 빗방울게임 - 유니티 에셋으로 오브젝트 만들기 (0) | 2024.06.18 |
[WID] Zapier - 슬랙에서 구글시트로 메시지 적재하기 (0) | 2024.06.18 |