안녕하세요 철사마 입니다.

이번엔 2D 게임에서 파티클을 사용하기 위해 유용한 제작 툴을 소개해 드리려고 합니다.

툴의 이름은 particle2dx 입니다.

유료가 있으며 무료가 있습니다. 유료는 결제 별도 프로그램을 설치해서 사용하는 것 같습니다.


무료는 웹에서 이용이 가능하며, 실제로 해보니 기능의 제약이 저장이 안되는 것 빼고는 제약이 거의 없었습니다.

어차피 필요한 기능만 사용하니까 필요한 부분만 쓰면 되겠지요.. :)


우선 홈페이지를 접속해 봅니다.

Particle2dx 작업 웹페이지 접속하기 ( http://www.effecthub.com/particle2dx )


페이지를 접속하면 아래와 같은 화면이 나옵니다.


우선 회원 가입을 하는게 좋을 것 같습니다. (그냥 쓸수 있어야 하지만... 기능상에 버그가 있어서 제대로 진행이 안되더군요.)

가입절차는 쉽습니다. 전 페이스북 계정으로 가입을 했습니다. 그리고 가입하면 10코인을 줍니다. ^^


페이스북을 연동하면 바로 가입이 되며 이메일 인증을 하게 됩니다.(아마 어떻게 하든 공통으로 메일 인증을 요구할 것 같습니다.)

페이스북 이메일로 인증 메일이 갑니다.

그 메일을 클릭해서 인증하시기 바랍니다. (안하면 메뉴 상단에 인증하라고 계속 알림이 있어서 신경쓰이더군요)


인증을 하면 아래와 같이 1, 2차 인증이 완료 되어 정상적으로 회원가입이 됩니다.




인증 후 홈페이지 메인에 가면 이렇게 나옵니다.(메인 홈페이지 http://www.effecthub.com/ )

위에 빨강색으로 테두리 되어 있는 Upload Works를 누릅니다.

누른 후 Create Online 탭을 누르고 아래와 같이 Create Cocos2D Effect 버튼을 누릅니다.


그렇게 하면 처음에 알려드렸던 작업 화면인 웹페이지로 이동합니다.


우선 메뉴 설명을 세세하게는 하기 어렵습니다. 저도 잘 모르거든요.. ^^)a


그래도 간단하게 설명을 해보겠습니다.

( 참고로 이 포스팅의 주 목적은 내가 만든 png를 적용하는데 발생하는 문제를 해결하는데 있습니다. )


[Import] 메뉴는 버튼을 누르면 팝업 창이 뜨면서 이미 저장한 파티클 작업 파일..plist 을 불러올 수 있습니다. 당연한 이야기겠지만 작업한 파일을 Export를 하면 .plist 파일로 저장됩니다.


[Color&Shape] 메뉴는 각종 파티클의 설정과 내가 제작한 Png파일을 적용할 수 있습니다.

위의 빨강색 테두리의 버튼이 내가 만든 Png를 파티클에 적용할 수 있는 기능입니다.

Upload Texture는 Png를 바로 적용할 수 있는 버튼이고, 아래의 My Texture는 내가 보유하고 있는 Png를 불러오는 버튼입니다.


Upload Texture 버튼은 쉬워보이지만 오류가 발생할 수 있습니다. 내가 지정한 Png를 올리고 업로드를 눌렀는데 적용되지 않는 경우가 많습니다.

이런식으로 업로드를 하면 99.99%에서 더이상 진행안되는 경우가 있습니다.

그래서 이런 오류를 방지하기 위해 My Texture에 등록하는 방법이 있습니다.




우선 메인 페이지에서 Home > Files 를 들어갑니다.

그 후에 다양한 폴더들이 나오는데 그 중 Texture 폴더에 필요한 이미지를 업로드 합니다.

전 임시로 3개의 이미지를 업로드 했습니다.

여기서 주의할 점은 이미지를 올리면 무조건 공개가 기본으로 처리됩니다.

공개를 원하지 않는다면 체크박스를 선택한 후 UnShare를 선택하시기 바랍니다. 안하면 공개되요~

그리고 삭제하는 기능을 못찾겠더군요.. 무료라서 그런가...


이미지를 모두 올렸으면 다시 작업페이지로 돌아옵니다.

그 후에 My Texture를 누르면 좀 전에 업로드했던 png 리스트가 보여집니다. 이제 선택하면 적용이 됩니다. 두둥!


[Motion] 버튼은 파티클의 세부 설정을 조정할 때 사용됩니다. 이해는 잘 안가지만 실시간으로 반영이 되니 수치를 조절하면서 하면 될 것 같습니다. :)


[Template]는 다양한 샘플 파일을 적용해 볼 수 있는 메뉴입니다.




[Export] 메뉴는 작업한 파일을 저장하는 메뉴입니다. 어츰에 COCOS2D로 지정했기 때문에 COCOS2D에서 사용할 수 있는 형태로 저장합니다.

저장은 3가지가 있습니다. png가 포함된 파일, png를 구분해서 별도로 다운받는 파일형식. 모두 설정은 .plist 로 저장됩니다.


[Save] 버튼은 클라우드에 작업물을 저장하는 것으로 공유 및 판매용으로 사용됩니다. 판매할 생각이 없다면 Save를 하지 않는것이 좋습니다. ^^


그 외 기능들이 있지만 툴을 사용하면서 자연스럽게 알게 되는 기능이라 설명은 제외하도록 하겠습니다.


오늘 처음으로 파티클 제작툴에 대해서 메뉴를 만져본 것입니다. 깊게 파고들지는 못했고요... 내 Png를 적용하지 못하는 버그때문에 고생을 한 터라 해결 방법을 설명하는데 중점적으로 내용을 할애했습니다.


동일한 문제를 겪으신 분들은 도움이 되실 듯 합니다. :)


2D 게임에서 쉽게 파티클을 생성해서 게임이 적용해 보시기 바랍니다.

감사합니다.!!


안녕하세요 철사마 입니다.

Unity 오브젝트를 쓰다보면 안보이게 하기, 보이게 하는 기능을 쓸데가 종종 있습니다.

그리고 이 오브젝트가 보이게 설정되어 있는지, 안보이게 설정되어 있는지도 확인할 필요가 종종 있을 것입니다.


해보면 정말 간단하지만 찾아보기 전까지는 헷갈리는 API라서 공유합니다. :)


첫 번째,

오브젝트를 보이게, 안보이게 하는 API입니다.


GameObject.SetActive() (공식 레퍼런스 확인)


using UnityEngine;

using System.Collections;


public class ExampleClass : MonoBehaviour {

    void Example() {

        gameObject.SetActive(false);

    }

}


이 함수는 bool 형의 인자값을 명시하여 Object를 제어할 수 있습니다.

옵션으로 False는 안보이기, True는 보이게 할 수 있습니다. 





두 번째 

Object가 현재 어떤 보이기 설정으로 되어 있는지 확인하는 API입니다.


GameObject.activeSelf (공식 레퍼런스 확인)


이 API는 읽기 전용으로 값의 여부만 확인할 수 있습니다.

간단한 예제를 보면 이렇게 쉽게 구성할 수 있습니다.


if(gameObject.activeSelf == true)  

    // 오브젝트가 보이게 설정되어 있는 경우

}

else if(gameObject.activeSelf == false)

    // 오브젝트가 안보이게 설정되어 있는 경우


오브젝트를 제어할 때 중복되게 실행하지 않고, 오브젝트의 현재 설정에 따라 설정을 별도로 줄 수 있어 편합니다. ^^


짧은 포스팅이었습니다.

작게나마 도움이 되시길~~~!!



직접 해보고 추천하는 게임한당 펜페이지, 좋아요 하시고 간단 리뷰 스크랩하세요 ^-^



먹는 사진 다 올리는 먹는 즐거움, 먹방 펜페이지에 놀러오세요 ^-^



(출처 : 구글 이미지 검색)


(출처 : 구글 이미지 검색>


안녕하세요 철사마입니다.

Unity에서 많이 쓰이는 NGUI에 대해서 팁을 공유하려고 합니다.

NGUI는 Next-Gen UI의 약자로 Unity에서 많이 쓰이는 UI, 그래픽 관련 컴포넌트입니다.

(https://www.assetstore.unity3d.com/kr/#!/content/2413)


Unity에 NGUI를 설치하고 스프라이트나 위젯을 설정하면 콘솔창에 이상한 오류문구가 뜨는 경우가 있습니다.

"Ignoring menu item NGUI because it is in no submenu!"



빌드할때 오류가 발생하는 것은 아니지만, 계속 오류 표시가 보여지니 신경이 쓰이기 마련입니다.(저는 매우 신경쓰이네요!)

하지만 이 부분은 NGUI 버그로서 코드를 약간만 수정하면 쉽게 고칠 수 있습니다.


NGUI 패키지를 설치하면 자동으로 인스톨되는 파일 중에 NGUIMenu.cs 파일을 수정하면 됩니다.

NGUIMenu.cs 파일의 위치는 "NGUI > Script > Editer > " 입니다. 위의 스크린샷을 참고해 주세요 :)




NGUIMenu.cs 파일의 715라인 부분을 수정하면 됩니다.


파일을 열어보면 715라인 부분에 이런식으로 코드가 작성되어 있습니다.


이 부분에서 Breaker 부분을 삭제하고, Help Priority의 라인을 10을 추가하여 22로 수정합니다.


그 후에 Unity를 종료하고 다시 프로젝트를 로딩하면 더 이상 오류메시지가 보이지 않습니다.

참 쉽죠? ^^


Unity가 새로운 버전이 업데이트 되면서 NGUI와 살짝 충돌나는 경우가 있는 것 같습니다.(아마도 Unity 5.4.1 이상)

수정을 하지 않아도 빌드가 잘 되기 때문에 수정하지 않아도 상관은 없지만, 뭔가 신경이 쓰인다면 수정해 보세요~!

참고로 이런 오류가 발생하는 이유는 저도 잘 모르겠습니다. ^-^;;;

(그리고 최신 NGUI 버전에서 이 부분은 자연스럽게 고쳐질 수 있습니다.)


그럼 간단한 팁을 마칩니다 :)



직접 해보고 추천하는 게임한당 펜페이지, 좋아요 하시고 간단 리뷰 스크랩하세요 ^-^



먹는 사진 다 올리는 먹는 즐거움, 먹방 펜페이지에 놀러오세요 ^-^



(출처 : 구글 이미지 검색)


안녕하세요 철사마 입니다.

이번 시간에는 Unity5의 버튼 클릭 이벤트에 대해서 정리해 보았습니다.


처음에 버튼 별로 스크립트를 짜고 오브젝트에 매번 붙여주는게 코드가 복잡해질 것 같아서 한번에 깔끔하게 할 순 없을까 하여 찾아보기 시작했습니다. 그런데 나름 답을 찾고 나니 버튼별로 기능이 천차만별이라 파일 하나로 뭉쳐서 하는게 과연 깔끔한 코드인가라는 생각이 들더군요. 정답은 없는 것 같습니다. 개발자의 취향에 맞게 하면 되겠죠. 기능별로 구분을 하는것이 오히려 코드를 깔끔하게 할 수 있지 않을까 생각이 들기도 합니다. ^^


우선 클릭에 관련된 이벤트에 대해서 알아보고, 스프라이트의 TAG를 활용하여 같은 클릭 이벤트에서 스프라이트 별로 다른 명령을 내릴 수 있어 일괄적으로 관리되는 느낌이 나도록 구성해 보았습니다.


버튼 클릭 이벤트르 만드는 방법은 다양합니다. 전 두가지만 설명하겠습니다. 다 설명하려니 너무 길어서요... ^~^


첫 번째 : 위젯에 Box Collider를 붙이고 스크립트에서 이벤트를 처리하는 방법

프로젝트 뷰에서 적당한 C# Script를 생성합니다. 그리고 아래와 같은 코드를 작성합니다.


using UnityEngine;

using System.Collections;


public class Onbutton : MonoBehaviour {


    UISprite m_Strite; // UISprite UI관련 컴퍼넌트를 선언합니다.


    void Awake()

    {

        m_Strite = GetComponent<UISprite>(); // 위젯에 연결된 스프라이트를 변수에 매칭합니다.

    }


    void OnClick() // 클릭이벤트가 발생했을때 이 함수를 호출합니다.

    {

        Debug.Log("Onclick");

    }

}



해당되는 오브젝트에 Add Component 를 눌러 Box Collider를 선택하여 클릭에 반응할 수 있도록 합니다.

Box Collider버튼 뿐만 아니라 각종 충돌체크에 사용되는 컴퍼넌트입니다.


추가로 위에 작성한 코드를 포함시켜 줍니다.


그렇게 하면 쉽게 클릭시 OnClick() 함수가 호출되게 됩니다.

여기서 참고할 사항은 Unity에서 자동으로 OnClick() 함수를 클릭시 자동으로 호출되는 함수로 인식한다는 것입니다.

이런 클릭관련 내장함수는 아래와 같이 몇가지가 있습니다.(중요한것만 추렸습니다.)


    void OnClick()

    {

        // 클릭시 반응

    }

    

    void OnDrag(Vector2 delta)

    {

        // 클릭 후 드래스시 반응

        // 아래 코드를 넣으면 대상 오브젝트가 드래그시 옮겨지는 것을 확인할 수 있습니다.

        m_Strite.transform.localPosition += (Vector3)delta;

    }


    void OnHover(bool isOver)

    {

        // 마우스 오버

  // 아래 코드르 넣으면 대상 오브젝트가 마우스 오버시 커지는 것을 확인할 수 있습니다. 

  // (모바일 디바이스에서는 당연하겠지만 확인이 불가능합니다.)

        m_Strite.cachedTransform.localScale = (isOver) ? Vector3.one * 1.2f : Vector3.one;

    }



두 번째 : 위젯에 Box Collider를 붙이고 UIButton 컴포넌트를 추가하고 스크립트에서 함수를 연결하여 오브젝트에 묶어 특정 함수만 처리하는 방법

우선 중간까지는 첫 번째 방식과 비슷합니다.

코드를 짜고, 오브젝트에 Box Collider를 추가합니다.

그리고 Add Component로 Button을 추가합니다. 

(UI Button으로 검색하면 안나올 수 있습니다. Button으로 검색해 주세요)


기본적으로 이 Component는 기본, 마우스 클릭, 오버 등 다양한 기능에 대하여 설정을 할 수 있습니다. 

(자세한것은 Inspector에서 이것저것 테스트 해보면 쉽게 알 수 있을 것입니다.)


Component 추가를 하면 기본으로 On Click이라는 메뉴가 생기게 됩니다.

여기에 함수를 추가한 Script를 연결하면, 함수리스트가 보여지며, 설정할 수 있게 됩니다.

주의해야 할 사항은 Script를 빈 오브젝트에 넣어서 오브젝트를 연결하는 것입니다.(주의!)

 - 그냥 스크립트를 끌어다 놓으면 연결이 되지 않습니다.

 - 오브젝트에 연결된 다양한 스크립트에 한번에 접근할 수 있다는 것입니다.(매우 유용해 보입니다.)

저는 GameMansger라는 빈 오브젝트를 만들어서 GameManager라는 C# 스크립트를 생성하여 OnClick()이라는 함수를 만들었습니다.

주의해야할 점은, 외부에 연결되는 함수이기 때문에 Public으로 설정하셔야 한다는 것입니다.

    public void OnClick()

    {

        Debug.Log("m_Start");

    }

이런 식으로 Public하게 함수를 구성해 주시면 됩니다.


추가로 첫 번째 처럼 다양한 이벤트에 대하여 설정을 연동하고자 한다면 Event Trigger Component를 추가하면 됩니다.





저는 개인적으로 첫 번째 방법이 구성하기에 용이해서 마음에 들었습니다.

그런데 다양한 버튼 이벤트에 대하여 버튼별로 액션을 구분할 방법이 있을까 해서 방법을 고민해 보았습니다.

바로  Tag를 활용하는 것이죠!


세 번째 : 첫 번째 방법에 코드에 Tag를 추가하여 버튼별로 한 코드로 통일해보기

첫 번째와 방법을 모두 동일합니다.

여기서 위젯인 스프라이트에 Tag라는 것을 추가해 보겠습니다.

Tag는 Inspector 메뉴의 상단에 위치해 있습니다. 기본적인 Tag가 있으며 Add Tag를 누르면 임의의 태그를 생성할 수 있습니다. 

전 편의를 위해 임의의 Tag를 생성했습니다.

그 후에 생성한 Tag를 위젯별로 Tag로 설정합니다.


그 후에 코드를 아래와 같이 추가합니다.


    void OnClick()

    {

        // Sprice에 태그를 해서 클릭했을 때 해당 태그의 값을 입력받음

        if (m_Strite.tag == "m_Start") 

        {

            Debug.Log("m_Start");

        }

        else if (m_Strite.tag == "m_Manual")

        {

            Debug.Log("m_Manual");

        }

        else if (m_Strite.tag == "m_Score")

        {

            Debug.Log("m_Score");

        }

        else if (m_Strite.tag == "m_Setting")

        {

            Debug.Log("m_Setting");

        }

        else if (m_Strite.tag == "m_Exit")

        {

            Debug.Log("m_Exit");

        }

        else

        {

            Debug.Log("이런 태그없어 : " + m_Strite.tag);

        }

    }


이렇게 하면 한 개의 소스파일로 여러가지 버튼의 클릭 이벤트를 구분하여 처리할 수 있습니다.

간단한 메뉴의 경우는 한개의 소스코드로 쉽게 구성을 할 수 있습니다.

물론 복잡한 구성일 경우는 별도로 소스를 구성하는 것이 훨씬 가독성이 좋아질 것 같습니다.


개인적으로 궁금했건 코딩방식이라 정리 차원에서 블로그에 적어놨습니다.

생각보다 쉬운 코드인데, 모르면 불편하더라구요 ^^


그럼 도움이 되었으면 좋겠습니다.

감사합니다.



직접 해보고 추천하는 게임한당 펜페이지, 좋아요 하시고 간단 리뷰 스크랩하세요 ^-^



먹는 사진 다 올리는 먹는 즐거움, 먹방 펜페이지에 놀러오세요 ^-^



(출처 : 구글 이미지 검색)


안녕하세요 철사마입니다.

오늘은 오랜만에 Unity 개발에 대해서 유용한 팁을 소개해 드리려고 합니다.

모바일 게임을 만들면 광고가 아주 중요하다는 것을 아실 것입니다. 

무료 게임으로 유저에게 부담을 덜어주는 대신 개발자에게 수익을 얻을 수 있는 방법이라 유저와 개발자가 서로 윈윈할 수 있는것이 바로 광고 모델인 것 같습니다.


수많은 광고 플랫폼이 있지만 그중에 Admob 광고는 실제 수익적인 면에서 상당히 매력적인 플랫폼입니다.

게다가 Google거라서 신뢰가 좀 되기도 합니다. ^~^;

(출처 : 구글 이미지 검색)


홈페이지(https://www.google.co.kr/admob/) 입니다.

혹시 계정이 없으면 새로 하나 만들어보세요. 

가입도 무료, 광고 ID 생성방법 또한 매우 쉽습니다.


광고 형태는 총 3가지로 구분할 수 있습니다.

1. 일반배너 : 항상 하단이나 상단에 배치되는 띠배너를 의미합니다.

2. 전면배너 : 가끔 팝업으로 뜨는 전면 배너입니다.

3. 동영상 : 새로 추가된 건데 동영상 광고입니다.(이건 미디에이션이라고 해서 타 플랫폼 계정을 추가할 수 있습니다.)


메인 페이지 > 수익창출 탭에서 3가지 광고 형태를 생성할 수 있습니다.

이미 출시했거나, 아직 출시하지 않은 앱에 대해서 등록이 가능합니다.(안드로이드, iOS 모두 가능)


그리고 추가한 앱에 대하여 자유롭게 광고 형식을 추가할 수 있습니다.


그럼 애드몹에 광고 형식 추가 방법은 여기까지 하겠습니다.(이부분은 쉬우니 금방 하실 수 있을 거에요)


이제부터 중요한 Unity에서 어떻게 추가하는지 설명을 하려고 합니다. :)



우선 설명드리고 싶은 부분은...

Admob 공식 사이트에서는 Unity 기반에서 설정하는 방법이 좀 난해하게 되어 있습니다. 네이티브 기반으로 설명이 되어 있어서요

아마 안드로이드 스튜디오를 기반으로 설명을 해서 그런건 아닐까 합니다. Unity에 대한 배려가 좀 부족합니다.


그러나!!!

Unity에서 설정을 매우 쉽게 하는 방법이 있습니다.

커스텀패키지를 설치하면 바로 적용이 될 수 있도록 착한분(?)들이 만들어 주셨어요 ^^

자료는 여기 링크를 참고하시면 됩니다.

https://github.com/googleads/googleads-mobile-unity/releases/tag/v3.0.4

다운로드 합니다.(GoogleMobileAds.unitypackage)

GoogleMobileAds.unitypackage



다운로드를 받으셨으면 이제 Unity를 구동합니다.


해당 패키지를 Unity > Assets > Import Package > Custom Package 메뉴를 선택하여 설치합니다.


그럼 아래와 같이 Import 정보가 나옵니다. 모두 Import 합니다. (저는 이미 설치를 해서 new가 안나오는데 처음 깔면 new가 뜹니다.)


이제 준비가 모두 끝났습니다.

간단한 코딩을 통하여 구동을 해보도록 하겠습니다.






새로운 C# 파일을 생성합니다.


아래는 구동을 위한 소스코드입니다.

일반 배너, 전면 배너 두가지 입니다.(동영상은 어떻게 하는지 아직 모르겠네요;;)


<전면배너>

using GoogleMobileAds.Api; // Admob API를 쓰기 위해 설정해 둡니다.



    InterstitialAd mInterstitialAd = null; // 전면광고 변수


    public string mInterstitialAd_Key; // 전면배너 Key (이렇게 전역변수로 해 놓으면 Unity에서 값을 쉽게 넣을 수 있어서 편합니다. )


    string SEE_YOUR_LOGCAT_TO_GET_YOUR_DEVICE_ID = "디바이스 ID";



void Awake() // 제일 먼저 호출되는 함수입니다.( Start 보다 빠릅니다 )

{

    // 전면 광고 id 등록

    mInterstitialAd interstitial = new InterstitialAd(mInterstitialAd_Key); // 광고 ID로 API를 세팅합니다.

 

    // 애드몹 리퀘스트 초기화

    AdRequest request = new AdRequest.Builder()

        .AddTestDevice( AdRequest.TestDeviceSimulator )       // Simulator.

        .AddTestDevice( SEE_YOUR_LOGCAT_TO_GET_YOUR_DEVICE_ID)  // My test device.

        .Build();

    // 테스트 할 때는 테스트 디바이스로 등록을 해야한다고 합니다. 테스트를 상용으로 하면 광고가 안나올 수 도 있다고 하더군요.

    // AdRequest request = builder.Build(); <-- 실제 빌드시에는 이렇게 바꿔줍니다.

 

    // 애드몹 전면 광고를 로드합니다.

    mInterstitialAd.LoadAd( request );

 }


void Start()

{

    // 밑에 부분은 앱 실행 부분에 두면 광고가 안나온다. 실행 후 약간 얼마 뒤로 미루는게 좋다고 합니다

    // 로드 되어 있다면 광고 보여줌

    if ( mInterstitialAd.IsLoaded() )

    {

        mInterstitialAd.Show();

    }

}



<일반배너>

using GoogleMobileAds.Api; // Admob API를 쓰기 위해 설정해 둡니다.


    BannerView mBannerView = null; // 배너 출력


    public string mBannerView_Key; // 배너 Key


    string SEE_YOUR_LOGCAT_TO_GET_YOUR_DEVICE_ID = "디바이스 ID";



void Awake() // 제일 먼저 호출되는 함수입니다.( Start 보다 빠릅니다 )

{

    // BannerView(애드몹 사이트에 등록된 아이디, 크기, 위치) / AdSize.SmartBanner : 화면 해상도에 맞게 늘임, AdPosition.Bottom : 화면 바닥에 붙음

        mBannerView = new BannerView(mBannerView_Key, AdSize.SmartBanner, AdPosition.Bottom);

 

    // 애드몹 리퀘스트 초기화

    AdRequest request = new AdRequest.Builder()

        .AddTestDevice( AdRequest.TestDeviceSimulator )       // Simulator.

        .AddTestDevice( SEE_YOUR_LOGCAT_TO_GET_YOUR_DEVICE_ID)  // My test device.

        .Build();

    // 테스트 할 때는 테스트 디바이스로 등록을 해야한다고 합니다. 테스트를 상용으로 하면 광고가 안나올 수 도 있다고 하더군요.

    // AdRequest request = builder.Build(); <-- 실제 빌드시에는 이렇게 바꿔줍니다.

 

    // 애드몹 배너 광고를 로드합니다.

   mBannerView.LoadAd(request); //배너 광고 요청

 }


void Start()

{

    mBannerView.Show();  // 배너 광고 출력

}


처음에 Unity에 Admob을 설정할 때 가이드가 없어서 매우 난감했는데요, 커스텀 패키지를 활용하니까 매우 작업이 쉬워졌습니다. ^^

소스로 보여드린건 샘플에 불과하지만, 이 샘플을 실제 게임에 어떻게 붙여서 자연스럽게 구성할지는 다시 고민을 해야겠지요?


참고로!! 

잘 되다가 안되는 경우가 종종 있습니다.

아마도 광고 물량이 100% 수신되는게 아닌 것 같아요.

오류인줄 알고 한참을 봐도... 소스는 이상이 없는데 ^^;;;; 

제 개발력의 한계로 여기까지 파악이 됩니다.. (전 아직 로그를 출력해서 볼 실력이 안됩니다. 버그 나면 엄청 당황스러움...)


그럼 다음에 또 재미있는 팁으로 다시 올려드릴게요!!

감사합니다.



먹는 사진 다 올리는 먹는 즐거움, 먹방 펜페이지에 놀러오세요 ^-^



직접 해보고 추천하는 게임한당 펜페이지, 좋아요 하시고 간단 리뷰 스크랩하세요 ^-^



안녕하세요 철사마입니다.

모바일 게임에서 구글플레이 연동하는 게임 많지요?

구글로 연동하는 앱이나 게임을 열심히 하다가 앱이나 게임을 삭제하고 내 계정 정보도 모두 삭제하고 싶을 때가 있습니다.

그럴 땐??


우선 구글 플레이 게정 연결 삭제 방법은 아래 게시글을 참고해 주세요~

2016/06/01 - [News, Infomation] - [이용팁] 구글 플레이 연결된 앱 정보 삭제하기[Google Play, TIP]


이번에는 구글플레이에 연동되어 있는 세이브데이터 지우는 방법입니다.

구글플레이 연동하는 게임 중에 세이브 데이터를 구글로 업로드 하고 나중에 내려받는 게임들이 있습니다.

그런 앱이 많이는 없는데 서버 연동이 아닌 클라이언트 연동을 하는 앱 중에서 구글에서 제공해주는 기능을 이용하여 데이터 백업을 하는 경우가 종종 있습니다.


앱을 지워도 그 세이브 데이터는 계속 남아있게 되는데.. 좀 찝찝하시다면 직접 지워보세요!!


우선 보유하고 있는 구글계정으로 구글드라이브에 로그인을 합니다.

홈페이지 주소 : https://drive.google.com


혹시 G메일을 쓰면서 구글드라이브에 연동을 했으면 첨부파일이 여기에 보여질 수 있습니다.

(난 업로드 한 적이 없는데 웬 파일들이? 그렇게 오해하지 마시고~)


우선 다른건 필요없고 오른쪽 상단의 톱니바퀴의 "설정메뉴 > 설정"을 클릭합니다.


설정 창이 뜨면 "설정 > 애플리케이션 관리"를 클릭합니다.


세이브 데이터로 업로드된 서비스와 설명들을 확인할 수 있습니다.


우측의 옵션을 클릭하여 데이터를 삭제할 수 있습니다.

"숨겨진 앱 데이터 삭제"를 누르면 저장된 세이브 데이터를 삭제할 수 있습니다.


또한 "드라이브에서 연결 해제"를 선택하면 앱 연결 자체를 깔끔하게 삭제할 수 있습니다.

전혀 쓰지 않거나 잘 안쓰거나 안쓰고 싶은 앱이 있다면 삭제해도 괜찮겠지요?


참고로 기본으로 깔려있는 데이터 앱은 삭제할 수 없습니다.






깔끔한 내 정보를 원한다면...

데이터  세이브 파일도 깔끔하게 정리해 보는 건 어떨까요? ^^

지금까지 쉽지만 찾으려면 어려운 구글플레이 데이터세이브 파일 삭제 방법이었습니다. :)





안녕하세요 철사마입니다.

요즘 모바일게임에서 구글플레이 연동하는 게임이 상당히 많습니다.(페이스북도 엄청 많지만요)

구글로 연동하여 앱이나 게임을 열심히 하다가 앱이나 게임을 삭제하고 내 계정 정보도 모두 삭제하고 싶을 때가 있을거에요

그 때 어떻게 하는지 궁금하시죠? 지금 설명 들어갑니다~


우선 "구글 내 계정 정보"로 로그인 합니다.

홈페이지 주소 https://myaccount.google.com/


구글은 계정 정보에 대하여 한 곳에서 모든 관리를 할 수 있다고 합니다.

우선 왼쪽 중간의 빨강색으로 표시해 둔 "연결된 앱 및 사이트"를 클릭합니다.



클릭을 하면 "내 계정 > 로그인 및 보안 > 연결된 앱 및 사이트" 메뉴로 이동하게 됩니다.

구글플레이 계정으로 연결된 앱이 58개나 되네요 ㄷㄷ

그럼 빨강색으로 표시해둔 앱관리 버튼을 눌러서 상세 정보를 확인해 보겠습니다.


정말 많은 앱 리스트가 보입니다.


리스트를 클릭하면 상세 정보를 볼 수 있습니다.

전 그중에 뭔지 잘 모르겠는 이름을 클릭해 보았습니다. 

역시 상세 정보를 봐도 잘 모르겠네요..

승인 날짜가 2월 5일이라고 하니 벌써 몇개월이 지났습니다.






이 앱을 삭제하고 싶으면 상단의 선택취소 버튼을 클릭합니다.

액서스 권한 삭제를 하면 더이상 엑서스가 안된다고 경고를 하고 있습니다.

뭐 어짜피 쓰지도 않는거면 삭제해도 괜찮겠지요.. 확인 버튼을 클릭!


확인 버튼을 누르면 상단에 삭제가 완료 되었다고 알림이 뜹니다. 참 간단합니다






나중에 필요하면 다시 연결하면 됩니다. 그러니 너무 긴장안해도 될것 같네요!

하지만 경우에 따라서 앱에 대한 사용 정보가 사라져 다시 연결하면 초기화가 되는 경우가 있어요!

잘 안쓰는 앱은 지우고 자주 쓰는거라면 안지우는게 좋겠지요? ^^


그럼 쉽지만, 하려고 하면 잘 모르겠는 구글플레이 앱 삭제하기 팁을 마치겠습니다.

감사합니다.~ :)



안녕하세요 철사마 입니다.

Unity는 계속 더 좋은 버전으로 업데이트를 제공하고 있는데요..


저는 최신 버전이 나오면 바로 업데이트를 해주는 편입니다.(반대하시는 분들이 많지만요, 업데이트는 항상 조심하라는 개발자 선배들의 조언)


그런데 아무생각없이 5.3.2로 업데이트 했더니 안드로이드 빌드가 안되는 것입니다.?!?!!?!

(뭔가 큰 실수를 한 것 같은 느낌적인 느낌!?)


(그런데 말입니다.)


몇 일동안 고생을 했는데 문제에 대한 해결 방법은 생각보다 쉬웠습니다.


설명을 하자면...

Unity5.3 이상 버전부터 설치시에 빌드옵션을 추가로 설정하게 되어 있습니다.

설정을 하면 Unity 툴에서 자동으로 모든 관련 설정을 지원해 줍니다.

처음 개발할 때는 설정이 제일 어려운데 이제 편하게 되었다고 할 수 있습니다.


그러나 모르고 설치하면 아주 황당한 경험을 하게 됩니다.(빌드가 안되는 상황-빌드 환경 자체가 사라져있음)


사실 굉장히 쉬운 건데, 모르면 정말 알 수가 없는 설치시 유의사항 공유합니다.


우선 이 포스팅은 유니티 5.3 이상 버전으로 설치할 때 유의사항입니다.(이전 버전은 해당 사항 없음)

유니티 다운로드(http://unity3d.com/kr/get-unity) <-- 친절한 다운로드 링크 배려 :)


Unity 5.3.2버전을 설치합니다.(2016년 2월 18일자 최신버전)


약관에 동의를 하고 Next를 누릅니다.

아래의 화면이 처음에 나오는 기본 옵션 화면입니다.


일반적으로 보던 리스트입니다.

여기서 체크박스리스트가 엄청 생겼는데요, 여기를 주의깊게 보세요!

아래 Android Build Support의 체크박스를 꼭 체크 해주세요!

그리고 그 아래엔 iOS Build Support 체크박스가 있는데 필요하면 체크해 주세요!


참고로 Support를 누르면 용량이 급격하게 증가합니다.

아래 확인해 보면 총 6.9GB나옵니다.(하드 용량이 부족한 분은 이전버전 다운로드를 추천합니다.)



Next를 누르면 설치 경로가 나옵니다.

필요에 따라 조정하고 기본으로 하려면 바로 Next!


설치가 잘 되고 있습니다.

용량이 커서 시간이 오래 걸립니다. 계속 기다려 주세요



설치가 완료 되었습니다. 그럼 Unity를 구동해 봅니다.


다른건 필요없고 File > Build Settings.. 메뉴를 클릭합니다.

그럼 아래와 같이 안드로이드 빌드가 가능한 것을 확인할 수 있습니다.(이제 빌드 가능!!)







Unity는 계속 개선되어지고 좋아지고 있는 것을 느낍니다.

최신 버전을 통해 쾌적한 unity를 경험해 보시기 바랍니다.


끝~ 너무 간단했나요? ㅎㅎ

+ Recent posts