2014년 4월 11일 금요일


Vector3 vOriginPos = //원래 위치. 
Vector3 vMovePos = //이동할 위치. 

//체인지 버튼을 누르면 호출되는 함수. 
public void MoveStartObject() 

    TweenPosition tp = TweenPosition.Begin(gameobject, 1f, vMovePos); 
    tp.from = //원래위치. 
    tp.to = //이동위치. 
    tp.duration = //이동할때걸리는 시간. 
    tp.eventReceiver = gameobject;  //이동이 끝나면 호출되는 콜백 - 
    tp.callWhenFinished= "MoveEnd"; 


//무빙이 끝나면 호출되는 콜백함수. 
void MoveEnd() 

  TweenScale ts = TweenScale.Begin(gameobject, 커지는 시간, 크기); 
  ts.from = //원래 크기. 
  ts.to = //커질 크기. 
  ts.delay = //이동후에 바로 커질것인가 딜레이타임을 주고 커질것인가. 
  ts.duration = //커지는 시간. 
}


boardObject.SetActive(true); 
TweenAlpha tweenAlpha = boardObject.AddComponent<TweenAlpha>(); 
tweenAlpha.from = 0.0f; 
tweenAlpha.to = 1.0f; 
tweenAlpha.onFinished = delegate(UITweener tween) 

        UIScale uiScale = tween.gameObject.AddComponent<UIScale>(); // 현재의 컴포넌트와 연결된 게임오브젝트에 다른 트윈 추가. 
        GameObject.Destroy(tween); // 실행이 끝난 현재의 트윈 컴포넌트를 제거. 
        uiScale.onFinished = // 여기에 새로운 트윈이 끝난시점의 내용을 위와 똑같이 추가. 
        uiScale.Play(); // 새로운 트윈을 실행. 
};

2014년 4월 5일 토요일

개발 시작...

1. 카메라 세팅
다른 방법이 있다고는 하지만.. 사실 알지 못하고..
나는 카메라를 세개 사용합니다.

먼저 게임 카메라...
게임안에 조작과 각종 화면을 담당합니다.

두번째 ui카메라로 .. ngui 카메라입니다.
여기서 각종 ui를 담당합니다.

세번째는 fx 카메라로..
화면에 특수 효과를 담당합니다.

실제로 2d 게임등에는.. ui위로.. 특수효과가 나오는 경우가 있습니다.
이때를 대비하여 만든 것입니다.
이부분은 차후 수정이 필요한것으로..

게임 화면에서 동전을 먹고
그 동적인 ui에 가서 번쩍이려면...
게임 구조가 달라져야 하기 때문입니다.


2. 해상도 세팅..

해상도는 ngui 에 의지합니다.
어차피.. 카메라는..기기별로 달라집니다.
그냥.. 액션게임이면 신경 안써도 되고..(조금 화면이 넓어진다고 뭔 상관이겠습니까)
퍼즐 등이면 미리 보완을 합니다.

ui 카메라가 문제인데...
해상도는 오토로 사용합니다.

그리고 각 부분은 앵커를 박아서 사용합니다.
이렇게 되면.. 세로 해상도를 기준으로..
ui가 늘어지지 않고
조금씩 위치를 넓혀 가면서... 보여지게 됩니다.

요기까지만 와도.. 게임 개발의 ABC중 a는 확실하게 온것입니다.
이제부터 본화면과 함께... 개발에 들어갑니다.
개발은 소스를 위주로 하겠습니다..

프로그램....순서

일단 먼저 틀을 잡아야 할 것이다.
나는 유니티를 기반으로 ngui를 위주로 사용한다.

먼저 스크립트는 크게 분야별로 나눈다.

1. 데이터 클래스 

게임에서 제공되는 각종 정보를 받거나 저장하는 클래스와
게임내부에서 사용되는 각종 정보 클래스...

여기서..
데이터를 받아롤때...
웹에서 받을 것인지... 를 정해야 하며
기본 작업에서는 그렇게까지 할 필요는 없다.

그럼에도.. xml 을 상용하고자 하면..이것도 큰 문제는 없다.

2. 연결하는 클래스..
xml 에 데이터를 받아서 클래스에 넘겨주는 클래스..

즉, xml 에서 정보를 받아서 가공하여
본 게임에서 사용할수 있게 해주는 클래스이다.

3. 게임 관련 클래스..
가공된 데이터등으로 본 게임에서 직접 게임을 제어하는 클래스....이다.


게임은 기본적으로 위에 세가지 클래스를 기반으로 작업된다.
게임의 규모가 작다면
클래스는 하나로 유지해도 상관없다.
끽해야 몇장 나온다.

그러나 광범위하게 작업되려면...
각각의 작업에 관련한 클래스를 정의해서 가지고 있어햐 한다
물론.. 이렇게 한다고 특별하게 뭔가가 정의되는 것은 아니지만..

어차피 큰 파이프 라인은 가지고 있어야 한다.
어느 클래스를 어디에서 쓰고
다시 어디로 연결하고 하는지.. 알아야 한다.

모르면 상황 웃겨진다.
서로 협의하는데만 시간 십만년 걸린다.
문제는 설명해주는 쪽이..
자시는 긴 작업과 회의 끝에 내용이 정리되 것임에도
설명을 받는 쪽에...게

이거 간단한거 아냐... 이렇게 생각하는데 있다...

긴시간이 흐르고서야.. 왜 우리가 늦어졌지.. 이렇게 생각하게 된다.