유니티 2D 씬 전환


#씬 전환


using UnityEngine.SceneManagement; 를 추가하고


SceneManager.LoadScene("Scene Name"); 을 하면 된다.





씬 전환을 하게 되면, 씬이 새로 시작되면서, 모든 변수들이 초기화가 되는 것에 주의해야한다. 

씬 전환을 하게 되면, 기존의 씬에 있던 게임 오브젝트들은 모두 사라지게 된다.








'Unity > Tip' 카테고리의 다른 글

유니티 2D 회전  (0) 2018.08.15
유니티 2D 충돌 체크  (0) 2018.08.15
유니티 PlayerPrefs 사용법  (0) 2018.08.11

유니티 2D 회전



Rotate : Vector3 축에 대해 게임오브젝트를 회전을 시킨다.


GameObject.transform.Rotate(Vector3 value)


public GameObject Level_3;


private void FixedUpdate()

{

Level_3.transform.Rotate(new Vector3(0, 0, 1) * Time.deltaTime * 140);

}



Right : 약간 오른쪽?으로 회전시킬 수 있다.


응용 : 마우스의 위치or터치에 대해 회전 시키는 방법


Vector3 tempTouch;

Vector3 tempVector3;

Vector3 ballDirection2;


GameObject tempObj;


private void FixedUpdate()

{

tempTouch = Input.GetTouch(0);

tempVector3 = mainCamera.ScreenToWorldPoint(tempTouch.position);

tempVector3.z = 0;


ballDirection2 = tempVector3;

ballDirection2.z = tempObj.transform.position.z;


tempObj.transform.right = (ballDirection2 - tempObj.transform.position);

}


1. tempTouch에 터치한 위치 벡터값을 대입하고 월드좌표계 변환, z값을 0으로 바꿈.

2. ballDirection2에 손질한 tempTouch값을 복사하고 z값을 현재오브젝트의 포지션 z값으로 바꿈. (밑에서 계산할 때 사라지게 하기 위함.)

3. ballDirection2 - tempObj.transform.position을 계산하면 tempObj와 터치한 곳을 잇는 벡터가 만들어지고 right을 사용하여그 방향으로 회전시킨다.



'Unity > Tip' 카테고리의 다른 글

유니티 2D 씬 전환  (0) 2018.08.19
유니티 2D 충돌 체크  (0) 2018.08.15
유니티 PlayerPrefs 사용법  (0) 2018.08.11

유니티 2D 충돌 체크


OnCollisionEnter2D : 두 물체간 물리적 충돌을 체크하고 싶다. 


    private void OnCollisionEnter2D(Collision2D collision)

    {

        if (collision.gameObject.tag == "Ball")

        {

            GameObject.Find("Canvas").transform.Find("Over").gameObject.SetActive(true);

            Time.timeScale = 0f;

        }

    }



OnTriggerEnter2D : 두 물체간 시각적 충돌을 체크하고 싶다.


    private void OnTriggerEnter2D(Collider2D collision)

    {

        if (collision.gameObject.tag == "Red_Ball")

        {

            Rot_Check++;

        }

    }


OnCollisionEnter2D 을 사용할때는 뭔가 부딪쳐서 밀리거나, 튕기거나, 멈추거나, 등등 물리적 작용이 일어날때 사용한다. 

예를 들면 당구공들의 충돌 후 속도의 변화를 줄때, 당구공이 다른 공과 부딪쳤는지 체크를 해야한다.


OnTriggerEnter2D 을 사용할때는 collider의 trigger가 체크되어있어야한다. trigger을 체크하면 시각적으로 이 게임오브젝트와의 충돌을 판별할 수 있다. 

예를 들면 슈퍼마리오의 버섯아이템, 만약에 버섯에 trigger가 체크가 안되어있다면 슈퍼마리오가 버섯을 먹을 때(충돌할 때) 많이 아플것이다..ㅠ




2D 충돌 체크 함수는 여러개가 있는데 2D글자를 빼면 3D함수라고 합니다.


OnCollisionEnter2D오브젝트의 자식 콜라이더가 다른 콜라이더에 충돌했을 때 호출됩니다. (2D 물리만)
OnCollisionExit2D오브젝트의 콜라이더와 다른 오브젝트의 콜라이더가 충돌에서 떨어진 순간에 호출됩니다. (2D 물리만)
OnCollisionStay2D오브젝트의 콜라이더와 다른 오브젝트의 콜라이더가 충돌하고 있는 동안 매 프레임 계속 호출합니다.(2D 물리만)
OnTriggerEnter2D오브젝트에 연결된 트리거 안에 다른 오브젝트가 들어갔을 때 호출됩니다. (2D 물리만)
OnTriggerExit2D트리거 상태의 오브젝트 콜라이더와 다른 오브젝트의 콜라이더가 충돌에서 떨어진 순간에 호출됩니다. (2D 물리만)
OnTriggerStay2D트리거 상태의 오브젝트의 콜라이더와 다른 오브젝트의 콜라이더가 충돌하고 있는 동안 매 프레임 계속 호출됩니다. (2D 물리만)

출처 : https://docs.unity3d.com/kr/530/ScriptReference/Collider2D.html




'Unity > Tip' 카테고리의 다른 글

유니티 2D 씬 전환  (0) 2018.08.19
유니티 2D 회전  (0) 2018.08.15
유니티 PlayerPrefs 사용법  (0) 2018.08.11

유니티 PlayerPrefs 사용법



설정


PlayerPrefs.SetFloat("key", float value)           "key"에 실수 값을 설정합니다.

PlayerPrefs.SetInt("key", int value)                "key"에 정수 값을 설정합니다.

PlayerPrefs.SetString("key", string value)        "key"에 문자 값을 설정합니다.



저장


PlayerPrefs.Save()        설정된 값들을 저장합니다.



접근


PlayerPrefs.GetFloat("key")        "key"에 저장된 실수 값을 반환합니다.

PlayerPrefs.GetInt("key")           "key"에 저장된 정수 값을 반환합니다.

PlayerPrefs.GetString("key")       "key"에 저장된 문자 값을 반환합니다.



삭제


PlayerPrefs.DeleteAll()                모든 키와 값들을 제거 합니다.

PlayerPrefs.DeleteKey("key")        키와 대응하는 값을 제거 합니다.



예제


[최근 점수 3개 저장]


Public Float Recent_Score = 95f;


PlayerPrefs.SetFloat("key1", PlayerPrefs.GetFloat("key2"))

PlayerPrefs.SetFloat("key2", PlayerPrefs.GetFloat("key3"))

PlayerPrefs.SetFloat("key3", Recent_Score)


key3에는 95가 저장되고 값들은 한칸씩 밀려난다.










'Unity > Tip' 카테고리의 다른 글

유니티 2D 씬 전환  (0) 2018.08.19
유니티 2D 회전  (0) 2018.08.15
유니티 2D 충돌 체크  (0) 2018.08.15

+ Recent posts