[Unity] 1주차 "빗물받는 르탄이"

Flaming Bun·2025년 3월 31일

Unity

목록 보기
2/39

🔥 캐릭터 이동

Vector3.rightnew Vector3(1f,0f,0f)와 같다.

⚔ 캐릭터 이동

    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            direction *= -1;
            renderer.flipX = !renderer.flipX;
        }

		(생략)

        //transform.position += new Vector3(1f, 0, 0) * direction; -- 아래 구문과 같은 동작
        transform.position += Vector3.right * direction;
    }


🔥 프레임 고정

Application.targetFrameRate는 Unity가 게임을 렌더링하려고 시도하는 최대 프레임 속도를 지정하는 속성.
기기 성능이 좋으면 Frame이 높아지므로, 기기 성능과 관계없이 1초에 60번 호출/계산하도록 고정 시킬 수 있다.

⚔ 프레임 60으로 고정

	void Start()
    {
        Application.targetFrameRate = 60;
        renderer = GetComponent<SpriteRenderer>();
    }


🔥 충돌(Collision)

GameObject의 충돌을 체크하기 위해서는 collider 컴포넌트가 필요하며, 둘 중 하나는 반드시 Rigidbody 컴포넌트를 가지고 있어야 한다. 그리고 충돌이 일어났을 때 충돌된 객체를 확인하려면 GameObject의 name 또는 CompareTag()함수를 이용할 수 있다.

⚔ 충돌

	private void OnCollisionEnter2D(Collision2D other)
    {
        // GameObject의 name을 이용한 방식
        // if(other.gameObject.name == "Ground")
        // {
        //	 Destroy(gameObject);
        // }
    	
        // Tag를 이용한 방식
        if (other.gameObject.CompareTag("Ground"))
        {
            Destroy(gameObject);
        }
    }


🔥 Color값을 코드에서 변경하는 방법

유니티 에디터에서 색상을 변경할 때 다음 이미지와 같이 RGBA의 최댓값은 255다.

하지만 코드에서 Color RGBA의 최댓값은 1.0f 이므로 다음 코드와 같이 255.0f를 나눠줘야 한다.

⚔ Color 변경

	SpriteRenderer renderer;
    
	void Start()
    {
		renderer.color = new Color(100 / 255f, 100 / 255f, 1f, 1f);
	}


🔥 InvokeRepeating()

InvokeRepeating() 함수는 지연시간 후 지정한 주기로 함수를 반복 실행하는 함수다. 반복을 멈추려면 CancelInvoke()함수를 사용해야 한다.

InvokeRepeating("함수명", 지연시간, 반복주기);

CancelInvoke("함수명");

⚔ 함수를 일정 주기로 반복 실행

	void Start()
    {
        InvokeRepeating("MakeRain", 0f, 1f); // 0초 뒤에 1초 간격으로 MakeRain() 함수 실행
        // CancelInvoke("MakeRain"); -- 반복을 중지
    }
    
    void MakeRain()
    {
        Instantiate(rain);
    }

📌Invoke와 InvokeRepeating

Invoke()함수는 지연시간 후 한 번 실행하고, InvokeRepeating() 함수는 지연시간 후 지정한 주기로 함수를 반복 실행한다.

InvokeRepeating 참고 사이트

https://yjd961216.tistory.com/29



🔥 싱글톤 패턴

싱글톤 패턴이란 클래스가 단 하나만 존재하는 인스턴스를 갖고, 다른 스크립트에서 쉽게 접근이 가능하도록 전역으로 인스턴스를 사용하는 패턴이다.

⚔ 싱글톤 예시

public class GameManager : MonoBehaviour
{
    public static GameManager Instance;

    private void Awake()
    {
    	if(Instance == null)  // 인스턴스가 없으면
        {
        	Instance = this; // 자신을 인스턴스로 설정
        }
        else
        {
        	Destroy(Instance); // 이미 있으면 파괴
        }
    }
}

📌ToString 소수점 자릿수 설정

"N2": 소수점 둘 째자리까지

timeTxt.text = totalTime.ToString("N2");

0개의 댓글