Unity 4.3 - 2D 튜토리얼

2013. 12. 8. 00:08

Unity 4.3 - 2D 튜토리얼


현재 4.3.1 버젼까지 업데이트 되었습니다.


2D 튜토리얼 영상이며 한글 캡션까지 추가되었으니 다들 참고 하세요^^




JS Studio Inc. 개발 이야기

[유니티 3D] 오브젝트 이동 및 회전하기 (월드좌표와 상대좌표)

2013. 9. 5. 18:33

 [유니티 3D] 오브젝트 이동 및 회전하기 (월드좌표와 상대좌표)

 

 유니티에서 기본적이지만 유용하게 사용되는 오브젝트 이동 과 회전에 대해서 알아보겠습니다. 

이동에는 월드좌표와 상대좌표로 크게 두가지 방식으로 구분됩니다.

 

1. 오브젝트 이동

  1) transform.position = (vector)  : 월드 좌표계에서의 위치값

     ex) transform.position = new Vector3(1, 1, 1); 을 하게 되면 오브젝트는 1, 1, 1에 위치합니다.

     매 프레임마다 돌려도 위치는 항상 1, 1, 1 에 위치하게 됩니다.


  2) transform.translate((vector)) : 상대좌표로서 현재의 위치에서 파라미터 값 만큼 이동하게 됩니다.

     ex) transform.translate(new Vector3(1, 1, 1)); 을 하게 되면 현재 오브젝트가 1, 1, 1에 있을 때,

       2, 2, 에 위치하게 됩니다.

     매 프레임마다 적용하면 프레임마다 1, 1, 1씩 이동하게 됩니다.

 

 

2. 오브젝트 회전

  1) transform.rotation  : 월드 좌표

     ex) transform.rotation = Quaternion.Euler(50.0f, 0, 0);


  2) transform.Rotate : 상대좌표

    ex) transform.Rotate(0, 1, 0);


알 수 없는 사용자 개발 이야기

[유니티 3D] GUI Skin 을 이용하여 버튼 만드는 방법

2013. 9. 4. 18:00

[유니티 3D] GUI Skin 을 이용하여 버튼 만드는 방법


 

GUI Skin 을 이용하여 버튼을 손쉽게 만들수 있다.

project 창에서 마우스 우클릭 -> Creat > GUI Skin 클릭하여 생성

버튼 하나에 GUI Skin 이 하나씩 매칭된다.

그리고 버튼을 클릭했을 때 버튼 이미지 변환도 가능하고, 그 외에 버튼에 대한 많은 기능들이 있다.


<사용 방법>

public GUISKin mySkin1;
public GUISKin mySkin2;

생성된 변수와 project 창에 이미 만들어진 GUI SKin을 연결.

void OnGUI
{
    GUI.skin = mySkin1;
    if(GUI.Button(new Rect(10,100,50,50), "title1") == true)
    {

// do something....

    }
 
   GUI.skim = mySkin2;
   if(GUI.Button(new Rect(10,200,50,50), "title2") == true)
   {

// do something....  

   }
 
}

 

 

알 수 없는 사용자 개발 이야기

[유니티 3D] 유니티 옵티마이징(최적화) 기법 소개

2013. 9. 2. 17:51

 

[유니티 3D] 유니티 옵티마이징(최적화) 기법 소개

 


많은 개발자들이 고민하고, 힘들어하는 부분이 되겠습니다.


유니티에서 몇가지 최적화 기법들을 알려드리겠습니다.



1. 로우 폴리곤(최대한 폴리곤 수를 줄이도록 노력하자.)


2. 드로우 콜 줄인다 (아틀라스 맵을 이용하여 머터리얼 수를 줄인다.)


3. static model 은 mesh combine 을 사용한다


4. Alpha Shader 를 최소화 한다


5. skybox 사용을 피한다


6. sound 파일 사용 주의 : 압축음원(백그라운드), 비압축음원(반복적인 사운드)


7. 텍스쳐 사이즈 최적화 : pot 사이즈


8. update 함수내에 소스를 최적화


9. 적당한 코루틴 사용 (사용하기 편리한 기능이지만, 너무 많아지면 프로그램이 무거워진다.)


10. plane 메쉬 사용하지 않는다.


11. Real Time Light 사용 자제한다.


12. Static Batch 옵션 사용 (고정된 물체는 공유)


13. Dynamic Batch 옵션 사용 - 버텍스가 900 이하인 경우


14. Lightmap Texture 용량 줄이자


15. Collider 는 Sphere, Box, Capsule 정도만 사용하며 Mesh colliider 는 피한다.


16. Rigidbody 를 동적으로 생성할 수 있으면 적극 사용한다.


17. Profiler 를 사용하여 부하가 걸리는 부분을 해결한다.

알 수 없는 사용자 개발 이야기

[유니티 3D] 씬 넘어갈 때 데이터 전송하는 방법

2013. 8. 22. 17:33

[유니티 3D]  씬 넘어갈 때 데이터 전송하는 방법


 

<Global Class에 static 옵션을 이용한다.>

1. 정적 클래스 생성한다. - 정적 클래스 만들때, 클래스명 뒤에 자동으로 붙여지는 "MonoBehaviour" 은 지우고, start(), update() 도 지운다.

 

2. 다음과 같이 static 변수를 선언한다.

public static class Variables
{
 public static int num;
 public static string name = "";

}

 

3. 이 변수를 사용하고 싶을때는 아래와 같이 사용하면 된다.

Variables.num = 10;
Variables.name = "Kim";

 

* 이 방법은 인스펙터(Inspector)에서 값을 조절할 수 없다는 단점이 있습니다.

 

알 수 없는 사용자 개발 이야기