336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.


[ IOS ] Agreements Message ITunes Connect



App Store Connect( https://appstoreconnect.apple.com/ )를 들어가보니 


약관에 동의하라고 나타납니다.


이 약관을 동의하지 않으면 기능 작동이 안되더라구요.


Agreements Message

Review the updated Paid Applications Schedule.

....




하단에 "계약, 세금 및 금융거래( Agreements, Tax, and Banking ) 을 눌러줍니다.




Request Amendments에 보면 


Request 버튼이 파란색으로 되어있는데 그걸 눌러줍니다.




다음 화면에서 동의를 체크하고 Submit을 눌러줍니다.




마지막 정보가 나타나면 Done을 눌러주면 됩니다.


이제 정상 사용 가능해집니다.






'게임 프로그래밍 > 기타' 카테고리의 다른 글

[기타] 젠킨스 유니티 빌드 설정하기  (0) 2018.03.13
[기타] 젠킨스 설치하기  (0) 2018.03.04
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.


젠킨스 유니티 빌드 설정하기(Windows 기준)




젠킨스 메인화면에서 좌측 상단 새로운 Item 선택합니다.




이름을 설정하고 Freestyle project 선택하고 확인을 눌러줍니다.




여기에서는 SVN 연동할 것이므로, 소스 코드 관리에서 Subversion 선택합니다.


그리고 Repository URL 설정해줍니다



그리고 Credentials 우측에 Add 눌러 svn 계정을 등록합니다.





계정이 추가되었다면 Credentials 해당 계정을 선택해줍니다.





이제 빌드설정만 해주면 끝이 납니다.


하단에 내리면 Build 라는 항목이 있는데 Add build step 눌러줍니다.


 여러 방법이 있겠지만 여기에서는 명령어를 Windows batch command 사용하겠습니다.


그리고 명령어를 넣어줍니다. 형식은 다음과 같습니다.

 

"유니티 실행파일 경로" -quit -batchmode -projectPath "프로젝트경로" -executeMethod "빌드스크립트함수명"

 

Ex> "C:\Program Files\Unity\Editor\Unity.exe" -quit -batchmode -projectPath "D:\Work\trunk\Client2017" 

-executeMethod PnBuilder.Builder.Build

 



6. 빌드스크립트함수는 아래 링크를 참조하시면 됩니다.

https://wiki.jenkins.io/display/JENKINS/Unity3dBuilder+Plugin



나의 설정

(빌드스크립트는 파일첨부)

Builder.zip


 

echo %PATH%

echo %USERDOMAIN%\%USERNAME% 

"C:\Program Files\Unity\Editor\Unity.exe" -quit -batchmode -projectPath "D:\Work\trunk\Client2017" -logFile "D:\buildlog.txt" -executeMethod PnBuilder.Builder.Build -outputprefix "Dev"

 

ECHO DONE

 


 

위의 커맨드를 보면

 

echo %PATH%

echo %USERDOMAIN%\%USERNAME% 

 


있는데, Unity 2007.1 .2 버전에서 .dll could not found

 


참고로 Unity3D 2007 버전에서는 .dll could not be found 에러가 발생합니다.


참고링크

 


이럴 경우 계정을 지정해주어야 합니다.

 

윈도우 시작 버튼을 눌러 service 가줍니다.






서비스에서 Jenkins 찾습니다.





마우스 오른쪽을 눌러 속성을 들어갑니다.





그리고 다음처럼 계정을 설정해주고 Jenkins 서비스를 재시작해줍니다.




설정이 완료되었습니다.


젠킨스로 가서 빌드를 하면됩니다.


안되면 댓글 달아주세요.









'게임 프로그래밍 > 기타' 카테고리의 다른 글

[IOS] Agreements Message  (1) 2018.08.15
[기타] 젠킨스 설치하기  (0) 2018.03.04
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.


젠킨스 설치하기(Windows 기준)


게임을 만들면서 실행파일 배포하는게 너무 힘들었습니다.


그래서 젠킨스(Jenkins)를 통해 바이너리와 패치까지 모두 연동하려고 합니다.


그래서 오늘은 젠킨스(Jenkins)를 설치하려고합니다.




1. 다음 페이지로 가서 다운을 받습니다.

https://jenkins.io/





2. 다운받은 파일의 압축을 풀고 jenkins.msi를 실행합니다.





3. 설치가 완료되면 다음과 같은 페이지가 나타납니다.





4. 위에 명시된 경로로 가서 해당파일을 열어 비밀번호를 복사해줍니다.





5. 붙여넣기를 하고 continue 버튼을 눌러줍니다.





6. 그러면 다음과 같이 플러그인을 설치하라고 나오는데


좌측은 추천 플러그인 설치이고, 


우측은 원하는 플러그인을 선택해서 설치하는 것입니다.





7. 저는 추천 플러그인으로 설치하였습니다. 


그러면 다음처럼 플러그인이 설치됩니다.





8. 플러그인 설치가 완료되면 계정을 생성하라고 합니다.


원하는 계정을 만드시면 됩니다. 





9. 완료되었습니다.





10. Start using Jenkins 버튼을 눌러주면 (또는 http://localhost:8080) 젠킨스 페이지로 이동합니다.


참고로 저는 로컬에 설치했으므로 url이 localhost입니다. 





설치가 다 되었으니, 새 작업을 만들어봐야겠네요.


다 되면 추가 포스팅 올리겠습니다.


도움 되셨길 바랍니다.

'게임 프로그래밍 > 기타' 카테고리의 다른 글

[IOS] Agreements Message  (1) 2018.08.15
[기타] 젠킨스 유니티 빌드 설정하기  (0) 2018.03.13
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

[ Xcode ] 실행중인 디바이스 알아오기



IPhone X 해상도 대응을 하려고 하는데, 


현재 실행중인 디바이스가 IPhoneX인지 알아야 돼서 구글링을 했습니다.

( https://stackoverflow.com/questions/46192280/detect-if-the-device-is-iphone-x )


가장 쉬운 방법은 스크린 사이즈의 높이값을 이용한 것이었습니다.



( https://i.stack.imgur.com )


위 표를 이용하여 높이값을 찾으면 되겠습니다.





위 링크에 더 자세한 내용있으니 참고하시면 될것 같습니다.

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

[Unity3D] Mac 에셋번들(asset bundle) 오류


Mac에서 에셋번들(asset bundle)을 만들고 파일질라(FileZila)를 통해서 업로드를 했는데


Error while downloading Asset Bundle: Failed to decompress data for the Assetbundle.. 


이런 오류가 나타났습니다.




잘 사용하고 있었던건데 금일 수정한것 때문에 그런것인지 당황했네요.


검색을 조금해보니 전송유형이 문제였습니다.


전송유형이 자동으로 되어있었습니다.



해결을 위해 전송유형을 바이너리(Binary)로 변경해주시면 됩니다.




쉽게 해결될 일이었는데 시간을 많이 소비했네요.


Error while downloading Asset Bundle: Failed to decompress... 


이런 문제로 당황스러운 분들은 참고하시면 좋을 것 같습니다.


336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

[Unity3D] 안드로이드 플러그인 만들기(안드로이드 스튜디오 2.3.3)


build.gradle

 


기존 포스팅에서 안드로이드 스튜이도 2.1.1로 플러그인을 만들었는데,

 

안드로이드 스튜디오가 업데이트 되면서 release 폴더가 안생기는 문제가 있었습니다.

 

그래서 많은 분들이 댓글을 달아주셨는데, 이제서야 포스팅을 하네요.

 

간략하게 쓰도록 하겠습니다. (순서 이미지는 다 있습니다.)

 

잘 안되시는 분들은 기존 포스팅 참고 하시면 수월하십니다.

 

 

안드로이드 스튜디오(Android Studio)를 실행하여 New Proejct를 하고,

 

Application name과 Company domain을 써줍니다.

 

실제 사용은 하지 않을 클래스 입니다. 아무거나 치셔도 됩니다. 그리고 Next를 눌러줍니다.

 

 

 

Phone과 Tablet에서 사용할 예정이니 그대로 Next를 눌러줍니다.

 

 

 

그리고 Empty Activity를 선택하고 Next를 눌러줍니다.

 

 

아래 체크 박스들은 쓸 일이 없으므로, 체크 해제 해주시고,

 

Activity Name도 그냥 두시기 바랍니다. (사용하지 않습니다)

 

그리고 Next를 눌러줍니다.

 

 

완료되었으면, 이제 File->New Module을 눌러줍니다.

 

 

 

기존에는 프로젝트 생성해서 바로 했지만, 이제 모듈을 추가해서 할 예정입니다.

 

Android Library를 선택하고 Next를 눌러줍니다.

 

 

 

라이브러리 이름을 작성하시고 Finish를 눌러줍니다.

 

 

 

방금 만든 모듈 루트에서 마우스 오른쪽을 눌러

 

Open Module Settings를 눌러줍니다.

 

UnityActivity를 사용하기 위해, Unity에 있는 classes.jar를 추가할 것입니다.

 

 

 

방금 만든 모듈이 선택되어있는지 재 확인 하시고,

 

Dependenceis로 가서 + 버튼을 누른 후 Jar dependency를 눌러줍니다.

 

 

 

현재 저는 Unity 5.3를 사용중입니다.(classes.jar 파일의 경로가 예전 버전과 달라졌습니다.)

 

만약 해당 파일이 존재하지 않는다면(예전 버전이라면)

 

이전 포스팅을 참고해주세요.

 

classes.jar 파일을 복사해서, 다음 경로(바로 윗 단계에서 경로 확인가능)에 붙여넣기 해줍니다.

 

 

 

넣어주고 다음 화면으로 돌아오면,  아래 이미지처럼 jar파일이 들어간 것을 확인할 수 있습니다.

 

 

 

확인을 눌러주시고, 좀전에 만든 모듈의 다음 패키지에서

 

마우스 오른쪽을 눌러 새로운 Java Class를 만들어 줍니다.

 

 

 

이름은 MyPluginActivity로 하겠습니다. 그리고 확인을 눌러줍니다.

 

 

 

거의 완료가 되었습니다.

 

테스트 할 수 있도록 몇개의 함수를 만들어 줍니다.

 

 

 

 

그리고 좌측에 Gradle을 통해 jar파일을 만들 예정입니다.

 

myplugin 모듈 이름이 써있는 build.gradle을 더블클릭해서

 

스크립트를 열어줍니다.

 

다음은 몇가지를 추가하여 작성한 파일입니다.

 

 

 

위 스크립트 내용입니다.

apply plugin: 'com.android.library'

android {
compileSdkVersion 26
buildToolsVersion "26.0.0"
publishNonDefault true
defaultConfig {
minSdkVersion 15
targetSdkVersion 26
versionCode 1
versionName "1.0"

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:26.+'
testCompile 'junit:junit:4.12'
compile files('libs/classes.jar')
}

task deleteObjectJar(type: Delete){
delete 'release/AndroidPlugin.jar'
}

task exportJar(type: Copy){
from('build/intermediates/bundles/release/')
into('release/')
include('classes.jar')
rename('classes.jar', 'AndroidPlugin.jar')
}

exportJar.dependsOn(deleteObjectJar, build)

 

 

다 작성하였으면 Build->Clean Project를 한번 해줍니다.

 

 

 

그리고 안드로이드 스튜디오 우측에 있는 Gradle을 눌러

 

myplugin->Tasks->other->exportJar를 더블클릭해줍니다.

 

 

 

그러면 다음처럼 프로젝트 폴더 release쪽에 jar파일이 나온것을 확인할 수 있습니다.

 

 

도움되셨길 바랍니다.

 

질문은 댓글 달아주세요^^

 


******************* 추가 *****************

Plugin 모듈을 추가 하셨는데, 그 모듈의 gradle 파일을 첨부하였습니다.


모듈 gradle을 설정하고, 이를 실행시켜야 release 폴더가 나옵니다.


프로젝트 만들 때 지정한 그 프로젝트가 아니라, 


추가한 모듈입니다. 이점 헷갈리시지 마세요.

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.


[엑셀] 문자열 비교하기

Office 2016 기준




다음과 같은 조건이 있습니다.


"만약 이름이 홍길동 이면 TRUE, 그렇지 않으면 FALSE"


IF문처럼 보이지만, 문자열 비교는 IF가 아닌 EXACT 함수를 사용해야 합니다.


레퍼런스 : 링크



설명


두 텍스트 문자열을 비교하여 정확히 같으면 TRUE를 반환하고 그렇지 않으면 FALSE를 반환합니다. 


EXACT 대/소문자를 구분하지만 서식 차이는 무시합니다.


포멧 => EXACT( 문자열1, 문자열2)




다음처럼 데이터가 있을 때 홍길동을 찾기 위해서는 다음과 같은 수식을 써주면 됩니다.


=EXACT(A1, "홍길동")





그러면 TRUE 또는 FALSE를 반환합니다.


여기에서는 A2가 홍길동이므로 TRUE를 반환합니다.





좀 더 나아가 IF와 조합하여 사용할 수 있습니다.


IF 포스팅 클릭


만약 조건이 TRUE이면 1을, FALSE는 0으로 설정하도록 하겠습니다.


= IF(EXACT(A2, "홍길동", 1, 0 )






그리고 설정하고자 하는 셀들을 선택해 쭉 내려주면


모두 적용됩니다.





엑셀 문자열 비교할 때는 IF가 아닌 EXACT라는것만


주의하시면 됩니다.



336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.


[엑셀] 텍스트 나누기

Office 2013 기준




다음과 같은 텍스트가 메모장에 있습니다.


안녕하세요|반갑습니다|즐겁습니다|행복합니다


1. 엑셀을 열고 A1에 붙여줍니다.




2. 메뉴에서 데이터 -> 텍스트 나누기를 눌러줍니다.





3. 구분 기호로 분리됨을 선택하고 다음을 눌러줍니다.





4. 기타를 체크하고, 구분자를 설정합니다. 


여기에서는 | 입니다.


그리고 마침을 눌러줍니다.





5. 완료. 텍스트가 분리되어 각 셀에 들어갔습니다.





336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.


유니티3D 안드로이드(Android) 플러그인(Plugin) 만들기(추가)


[UNITY] 안드로이드 플러그인 만들기 에 추가적으로 하나더 써보려고 합니다.


Java 코드단에서 UnityPlayerActivity를 상속 받는 곳에서 구현을 했었는데,


그게 아닌 타 클래스 만들어서 하는 부분도 추가합니다. 


Java에서 타 클래스를 만들고 구현을 한 다음 Unity에서 클래스를 찾아서 호출하면 됩니다.


간단히 예를 들겠습니다.



< Java >


1. 프로젝트 만들고(패키지명은 원하시는걸로), 클래스를 하나 추가합니다.


여기에서는 TestAClass가 새로 생성한 클래스 입니다.




2. 기본 클래스 파일입니다. UnityPlayerActivity를 상속해 줍니다.


* UnityPlayerActivity상속없이 자바 클래스만 추가해서 되는지는 아직 못해봤네요. 혹 해보신분 댓글로 부탁드립니다.




3. 유니티애서 호출할 클래스 입니다. 


간단히 GetSum()이라는 함수만 추가하겠습니다.





< Unity >

* 우선 AndroidManifest.xml 확인해주세요. 많은 분들이 패키지명이 달라서 안된경우가 많았습니다.


using UnityEngine;
using System.Collections;

public class PluginCalling : MonoBehaviour {

    private static AndroidJavaObject myObj;

    string messge = "init";

	// Use this for initialization
	void Start () {
#if UNITY_ANDROID && !UNITY_EDITOR
	    myObj = new AndroidJavaObject( "com.mine.androidplugin.TestAClass" );
#endif
	}
	
	// Update is called once per frame
	void Update () {
	
	}

    void OnGUI()
    {
        // 이렇게 접근하는 방법은, static이나 non-static 모두
        // 동일한 방법으로 접근 가능하다
        if (GUI.Button(new Rect(100, 100, 100, 50), "GetSum"))
        {
#if UNITY_ANDROID && !UNITY_EDITOR
            messge += ("\n" + myObj.Call("GetSum", 123, 456).ToString());
#endif
        }

        GUI.Label(new Rect(Screen.width / 2 - 350, Screen.height / 2 - 150, 700, 300), messge);
    }
}


별거 없네요. 그냥 AndroidJavaObject로 오브젝트 생성하고 호출하는 것 입니다.


도움되셨길 바랍니다.

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

- NGUI 버전 : 3.9.8 -


NGUI 토글버튼 제어



전 포스팅에서 NGUI 토글버튼을 사용해서 메뉴를 만들었는데, 


메뉴를 선택하고 밖으로 나갔다가 다시 들어왔을 때


이전에 선택한 것으로 되어있습니다.


다시 말해서 초기화 과정이 필요합니다.


코드 몇줄만 추가하면 되는 작업입니다.


< ToggleHandler.cs 코드 >


using UnityEngine;
using System.Collections;

public class ToggleHandler : MonoBehaviour {

    // 어떤 버튼이 활성화 되었는지 표시하기 위함.
    public UILabel m_lblMessage;

    // 토글을 제어하기 위해 선언함.
    public UIToggle[] m_arrToggles;

    void Update()
    {
        // 키로 제어하는것 추가.
        if(Input.GetKeyDown(KeyCode.Alpha1))
        {
            m_arrToggles[0].value = true;
        }

        if (Input.GetKeyDown(KeyCode.Alpha2))
        {
            m_arrToggles[1].value = true;
        }

        if (Input.GetKeyDown(KeyCode.Alpha3))
        {
            m_arrToggles[2].value = true;
        }
    }

    // 토글 버튼이 바뀔 때 발생하는 이벤트
    public void OnChangeToggle()
    {
        // 현재 상태가 변한 토글버튼을 가져옵니다.
        UIToggle current = UIToggle.current;
        // 우리는 활성화 된 경우만 처리할 예정이므로,
        // 활성화 된것(value가 true)이 아닌경우(false인 경우) return합니다.
        if (current.value == false) return;
        // 확인을 위해 메시지를 뿌립니다.
        m_lblMessage.text = current.name;
    }
}



인스펙터를 보시면 Arr Toggels가 보이실 것입니다.


여기에서 메뉴가 세개이므로 3으로 세팅하고, 


ToggleA, B, C를 끌어서 연결시키겠습니다.




실행을 하고 


1, 2, 3을 누르면 선택이 되실 것입니다.




나중에 완성된 게임을 가지고 포스팅을 할 예정인데


그때 NGUI 토글도 필요하니 잘 기억해두시기 바랍니다.

'게임 프로그래밍 > NGUI' 카테고리의 다른 글

[NGUI] 토글버튼(Toggle)  (0) 2016.07.02
[NGUI] 버튼과 레이블  (0) 2016.06.07
[NGUI]스프라이트(SPRITE)  (0) 2016.05.26

+ Recent posts