티스토리 뷰
반응형
Gamelog 02. '스크립트로 동작시키자'를 따라해본다.
스크립트
'무엇을 할 것인가?' 를 정의하는 것이며, C#으로 되어 있음
예시)
- Forever_MoveH: 계속, 수평으로 이동한다.
- Forever_Rotate: 계속, 회전한다.
- Sometime_Turn: 때때로, 돈다.
- Sometime_Flip: 때때로, 반전한다.
클래스
하나의 기능을 가진 스크립트를 말함.
- 클래스 이름: 영어, 첫 문자는 대문자. 클래스 이름과 파일이름은 같게.
- 스크립트 생성시 기본 메서드: Start(), Update()
- 이외 메서드: FixedUpdate(), OnCollisionEnter2D(), OnMouseDown(), LastUpdate()
- 하나의 게임 오브젝트에 여러 개의 스크립트 함께 적용(어태치) 가능
메서드
Start()
초기 세팅
void Start () {
this.transform.Translate(5, 0, 0); // x,y,z 축
}
Update()
1프레임마다 계속 실행
- 1초에 60~80회 정도 실행됨
- 시간 간격은 컴퓨터의 사양이나 그때의 처리 속도에 따라 변화함.
- 시간 간격이 일정하지 않아 매끄럽게 움직이지 않을 수 있음
void Update () {
this.transform.Translate(0.01f, 0, 0);
}
FixedUpdate()
1초 동안에 실행되는 횟수를 정해 실행
- 기본적으로는 1초에 50번 실행
- public 값 설정시, Inspector 창에서 변경 가능
public float speed = 5; // 속도값
public float angle = 90; // 각도
void FixedUpdate () {
this.transform.Translate(speed/50, 0, 0); // 수평이동
this.transform.Translate(0, speed/50, 0); // 수직이동
this.transform.Rotate(0, 0, angle/50); // 2D 게임 이미지 회전시 z값 사용
this.GetComponent<SpriteRenderer>().flipY = true; // 상하반전
this.GetComponent<SpriteRenderer>().flipX = true; // 좌우반전
}
- 일정 조건 충족시 실행
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TestScript : MonoBehaviour {
public float angle = 90; // 각도
public int maxCount = 50; // 빈도
int count = 0;
// Use this for initialization
void Start () {
count = 0; // reset
}
void FixedUpdate () {
count = count + 1;
if (count >= maxCount)
{
this.transform.Rotate(0, 0, angle);
count = 0;
}
}
}
- 일정 조건 충족 응용하기
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TestScript : MonoBehaviour {
public float speed = 10; // 속도
public int maxCount = 180; // 수평이동 Max Count
int count = 0; // 수평이동 Count
bool flipFlag = false;
// Use this for initialization
void Start () {
count = 0; // reset
}
void FixedUpdate () {
count = count + 1;
this.transform.Translate(speed/50, 0, 0);
if (count >= maxCount)
{
count = 0;
this.transform.Rotate(0,0,180);
flipFlag = !flipFlag;
this.GetComponent<SpriteRenderer>().flipY = flipFlag;
}
}
}
아직 단축키도 잘 모르고 비효율이 많은 것 같지만, 재밌었다!
반응형
'프로그래밍 > Unity' 카테고리의 다른 글
Gamelog 05. 쉬운게 역시 재밌다. (0) | 2023.01.25 |
---|---|
Gamelog 04. 게임이 보이기 시작했다. (2) | 2023.01.24 |
Gamelog 03. 키보드를 쓰기 시작했다. (0) | 2023.01.24 |
Gamelog 01. 게임을 못 만들 뻔했다. (0) | 2023.01.22 |
Gamelog 00. 게임을 만들기로 했다. (0) | 2023.01.15 |
댓글