반응형

리모트 세팅 자체를 모르시는 분들이 많을 겁니다.


리모트 세팅에서는 다양한 부분을 제공하지만 그 중 서버 없이 값을 조절해야하는 경우에 대해서 설명 드립니다.


1. 리모트 세팅 접근


Unity -> Service -> Analytice 활성화


Unity Dashboard 사이트 접근 -> Operate -> Optimization -> Remote Settings



2. 무엇을 할 수 있는가?


여기서는 Int , float, string , bool 값을 설정할  수 있습니다.


3. 언제 써먹을 수 있는가?

ex) 특정 시점에만 팝업을 열고 싶을 때, 해당 기능을 활용할 수 있습니다.


해당 int 값에 따라서 팝업이나 광고를 열고 닫을 수 있게 할 수 있습니다.


4. 스크립트는 어찌 사용하나?

유니티 예제 코드입니다.

코드 보시고서 활용하시면 문제없습니다.


using UnityEngine; public class RemoteTuningVariables : MonoBehaviour { public float DefaultSpawnRateFactor = 1.0f; public float DefaultEnemySpeedFactor = 1.0f; public float DefaultEnemyStrengthFactor = 1.0f; public static float SpawnRateFactor{ get; private set; } public static float EnemySpeedFactor{ get; private set; } public static float EnemyStrengthFactor{ get; private set; } void Start () { SpawnRateFactor = DefaultSpawnRateFactor; EnemySpeedFactor = DefaultEnemySpeedFactor; EnemyStrengthFactor = DefaultEnemyStrengthFactor; RemoteSettings.Updated += new RemoteSettings.UpdatedEventHandler(HandleRemoteUpdate); } private void HandleRemoteUpdate(){ SpawnRateFactor = RemoteSettings.GetFloat ("SpawnRateFactor", DefaultSpawnRateFactor); EnemySpeedFactor = RemoteSettings.GetFloat ("EnemySpeedFactor", DefaultEnemySpeedFactor); EnemyStrengthFactor = RemoteSettings.GetFloat ("EnemyStrengthFactor", DefaultEnemyStrengthFactor); } }


5. 주의 사항


* Remote Settings 보시면 Development 와 Release 를 선택하게되어 있습니다.


* Unity 자체에서 테스트 할 경우, Development 에 세팅하여 사용해 주세요.


* 값 변경 후에는 우측의 SYNC를 눌러서 적용 시켜주세요.


* 변경된 값이 적용되기 까지 최대 1분정도가 소요 될 수 있습니다.

반응형
반응형

게임을 만들때 사운드 작업을 하게 됩니다.


사운드 작업을 열심히 하다 테스트를 하다보면 샘플과 적용된 사운드의 음량이 매우 다르게 들릴 경우가 있습니다


특히 배경음과 효과음이 서로 너무 튀거나 너무 안들리는 경우가 있습니다.


이게 사운드의 벨런스가 필요한 부분입니다.


사운드 전문가라면 직접 조절하면 되겠지만 일반 개발자는 이게 쉽지가 않습니다.


그래서 간단하지만 효율적인 내용을 하나 설명 드립니다.


1. Audio Mixer?

 - 이름 그대로 오디오들을 섞어 주는 기본 어셋이라고 보시면 됩니다.


2. 설정 방식


a. window -> audio Mixer 클릭


b. Grops 부분에 Master(이름은 크게 상관없음) 로 이름을 변경, 하위로 BGM , SFX를 설정


팁) 게이지 우측의 화살표로 볼륨을 조절 할 수 있습니다.

기본 AudioSource 조절과는 별도 입니다.


c. 중요 설정


I.BGM에는 Duck Volume을 설정


Duck Volume 에는 다양한 옵션이 있습니다.


이부분은 레퍼런스를 참고해서 진행해보시기 바랍니다.


Attack Time = 적용까지 딜레이 시간 ( 작을 수록 즉시 전달 ) 등,




II. Sfx를 누르면 인스펙터 창에 정보가 출력됩니다.


add Effect -> Send 

(BGM에게 음악이 실행되는 부분을 알려 주기 위해서 설정)




Receive에서 BGM\Duck voulme 을 설정 



send level 이 0에 가까울수록 크게 영향을 줌



d. 최종 적용


Audio Source -> OutPut -> BGm OR SFX로 설정





소스로도 아웃풋은 설정할 수 있습니다.

Audio Mixer만 잘 설정해 놓으시면 됩니다.


그럼 즐겁게 좋은 게임 만드세요 ^^

반응형
반응형

게임 개발이 마무리 되어 갈쯤 등록을 위해서 다음과 같은 이미지를 준비해야 합니다.


1.App Icon - 게임 설치 및 마켓 대표 아이콘


2. 스크린 샷 - 등록 시 필요


3. 배너 이미지 - 구글 등록 시 사용



최소로 필요한 경우이며 특정한 경우 추가적인 사이즈가필요 할 수 있으니 미리 체크해보시기 바랍니다.

---------------------------------------------------------------------------------------------------------

분류 

사이즈 

비고 

 App Icon

1024 x 1024  

최초 1024 사이즈로 제작

IOS 서비스를 할 경우, 아이콘 변경프로그램 사용


 Asset Catalog Creator  


android 특정 버전 이상 부터 자체적으로 ICON에 효과를 넣는 경우가 있습니다.


Unity에서 이를 대비한 것인지 배경 과 앞쪽 이미지를 설정하는 부분이 있습니다.


저는 사용하지 않았지만 혹시 모를 경우를 대비하여

(당연히 레이어를 분리했다고 생각하지만) 주의해서 작업해주세요,.

 스크린 샷

<Android>

1080 x 1920 / 1920 x 1080


해당 비율이면 등록시 문제 없음


<IOS>


5.5 ( 1242x2208 / 2208x1242 )

5.8 ( 1124 x 2436 / 2436 x 1125)

 12.9 ( 2048 x 2732 / 2732 x 2048)

각 해상도별 최소 3장의 이미지가 필요


해상도별로 다를필요는 없음


기본 1가지를 변경.

 배너 이미지

[스토어 상단 노출]

1024 x 500


[피처드 용 배너]

180x120

안드로이드에만 해당


스토어 페이지 상단에 노출


피처드 시 사용하는 요도로 알고 있음 


반응형

'개발이야기 > 외부 기능 연결' 카테고리의 다른 글

Unity cloud Build  (0) 2018.07.16
.12 File  (0) 2018.07.16
Unpacking(난독화)  (0) 2018.07.12
Admob 베너 광고 끄기  (0) 2018.04.04
Google Play Game Center 연동  (0) 2018.04.03
반응형
1. 개인정보의 처리 목적 (‘http://devgom87.tistory.com/’이하 ‘Dev.gom’) 은(는) 다음의 목적을 위하여 개인정보를 처리하고 있으며, 다음의 목적 이외의 용도로는 이용하지 않습니다. - 고객 가입의사 확인, 고객에 대한 서비스 제공에 따른 본인 식별.인증, 회원자격 유지.관리, 물품 또는 서비스 공급에 따른 금액 결제, 물품 또는 서비스의 공급.배송 등 2. 개인정보의 처리 및 보유 기간 ① (‘http://devgom87.tistory.com/’이하 ‘Dev.gom’) 은(는) 정보주체로부터 개인정보를 수집할 때 동의 받은 개인정보 보유․이용기간 또는 법령에 따른 개인정보 보유․이용기간 내에서 개인정보를 처리․보유합니다. ② 구체적인 개인정보 처리 및 보유 기간은 다음과 같습니다. ☞ 아래 예시를 참고하여 개인정보 처리업무와 개인정보 처리업무에 대한 보유기간 및 관련 법령, 근거 등을 기재합니다. (예시)- 고객 가입 및 관리 : 서비스 이용계약 또는 회원가입 해지시까지, 다만 채권․채무관계 잔존시에는 해당 채권․채무관계 정산시까지 - 전자상거래에서의 계약․청약철회, 대금결제, 재화 등 공급기록 : 5년 3. 개인정보의 제3자 제공에 관한 사항 ① ('http://devgom87.tistory.com/'이하 'Dev.gom')은(는) 정보주체의 동의, 법률의 특별한 규정 등 개인정보 보호법 제17조 및 제18조에 해당하는 경우에만 개인정보를 제3자에게 제공합니다. ② ('http://devgom87.tistory.com/')은(는) 다음과 같이 개인정보를 제3자에게 제공하고 있습니다. 1. <> - 개인정보를 제공받는 자 : - 제공받는 자의 개인정보 이용목적 : - 제공받는 자의 보유.이용기간: 4. 개인정보처리 위탁 ① ('Dev.gom')은(는) 원활한 개인정보 업무처리를 위하여 다음과 같이 개인정보 처리업무를 위탁하고 있습니다. 1. <> - 위탁받는 자 (수탁자) : - 위탁하는 업무의 내용 : - 위탁기간 : ② ('http://devgom87.tistory.com/'이하 'Dev.gom')은(는) 위탁계약 체결시 개인정보 보호법 제25조에 따라 위탁업무 수행목적 외 개인정보 처리금지, 기술적․관리적 보호조치, 재위탁 제한, 수탁자에 대한 관리․감독, 손해배상 등 책임에 관한 사항을 계약서 등 문서에 명시하고, 수탁자가 개인정보를 안전하게 처리하는지를 감독하고 있습니다. ③ 위탁업무의 내용이나 수탁자가 변경될 경우에는 지체없이 본 개인정보 처리방침을 통하여 공개하도록 하겠습니다. 5. 정보주체와 법정대리인의 권리·의무 및 그 행사방법 이용자는 개인정보주체로써 다음과 같은 권리를 행사할 수 있습니다. ① 정보주체는 Dev.gom(‘http://devgom87.tistory.com/’이하 ‘Dev.gom) 에 대해 언제든지 다음 각 호의 개인정보 보호 관련 권리를 행사할 수 있습니다. 1. 개인정보 열람요구 2. 오류 등이 있을 경우 정정 요구 3. 삭제요구 4. 처리정지 요구 6. 처리하는 개인정보의 항목 작성 ① ('http://devgom87.tistory.com/'이하 'Dev.gom')은(는) 다음의 개인정보 항목을 처리하고 있습니다. 1<광고> - 필수항목 : 휴대전화번호 - 선택항목 : 7. 개인정보의 파기('Dev.gom')은(는) 원칙적으로 개인정보 처리목적이 달성된 경우에는 지체없이 해당 개인정보를 파기합니다. 파기의 절차, 기한 및 방법은 다음과 같습니다. -파기절차 이용자가 입력한 정보는 목적 달성 후 별도의 DB에 옮겨져(종이의 경우 별도의 서류) 내부 방침 및 기타 관련 법령에 따라 일정기간 저장된 후 혹은 즉시 파기됩니다. 이 때, DB로 옮겨진 개인정보는 법률에 의한 경우가 아니고서는 다른 목적으로 이용되지 않습니다. -파기기한 이용자의 개인정보는 개인정보의 보유기간이 경과된 경우에는 보유기간의 종료일로부터 5일 이내에, 개인정보의 처리 목적 달성, 해당 서비스의 폐지, 사업의 종료 등 그 개인정보가 불필요하게 되었을 때에는 개인정보의 처리가 불필요한 것으로 인정되는 날로부터 5일 이내에 그 개인정보를 파기합니다. 8. 개인정보 자동 수집 장치의 설치•운영 및 거부에 관한 사항 Dev.gom 은 정보주체의 이용정보를 저장하고 수시로 불러오는 ‘쿠키’를 사용하지 않습니다. 9. 개인정보 보호책임자 작성 ① Dev.gom(‘http://devgom87.tistory.com/’이하 ‘Dev.gom) 은(는) 개인정보 처리에 관한 업무를 총괄해서 책임지고, 개인정보 처리와 관련한 정보주체의 불만처리 및 피해구제 등을 위하여 아래와 같이 개인정보 보호책임자를 지정하고 있습니다. ▶ 개인정보 보호책임자 성명 :김정진 직책 :대표 직급 :대표 연락처 :01035308489, suhogumsa@gmail.com, ※ 개인정보 보호 담당부서로 연결됩니다. ▶ 개인정보 보호 담당부서 부서명 : 담당자 : 연락처 :, , ② 정보주체께서는 Dev.gom(‘http://devgom87.tistory.com/’이하 ‘Dev.gom) 의 서비스(또는 사업)을 이용하시면서 발생한 모든 개인정보 보호 관련 문의, 불만처리, 피해구제 등에 관한 사항을 개인정보 보호책임자 및 담당부서로 문의하실 수 있습니다. Dev.gom(‘http://devgom87.tistory.com/’이하 ‘Dev.gom) 은(는) 정보주체의 문의에 대해 지체 없이 답변 및 처리해드릴 것입니다. 10. 개인정보 처리방침 변경 ①이 개인정보처리방침은 시행일로부터 적용되며, 법령 및 방침에 따른 변경내용의 추가, 삭제 및 정정이 있는 경우에는 변경사항의 시행 7일 전부터 공지사항을 통하여 고지할 것입니다. 11. 개인정보의 안전성 확보 조치 ('Dev.gom')은(는) 개인정보보호법 제29조에 따라 다음과 같이 안전성 확보에 필요한 기술적/관리적 및 물리적 조치를 하고 있습니다. 1. 개인정보의 암호화 이용자의 개인정보는 비밀번호는 암호화 되어 저장 및 관리되고 있어, 본인만이 알 수 있으며 중요한 데이터는 파일 및 전송 데이터를 암호화 하거나 파일 잠금 기능을 사용하는 등의 별도 보안기능을 사용하고 있습니다. 2. 개인정보에 대한 접근 제한 개인정보를 처리하는 데이터베이스시스템에 대한 접근권한의 부여,변경,말소를 통하여 개인정보에 대한 접근통제를 위하여 필요한 조치를 하고 있으며 침입차단시스템을 이용하여 외부로부터의 무단 접근을 통제하고 있습니다.
반응형
반응형

알바생 라이언 출시 후, 그동안 밀렸던 참고 사이트와 업데이트를 진행하였다.


그러던 중 유니티 2018.2.xx 버전이 업데이트가 며칠 전 부터 보여 할까? 말까? 하다가 시도하였다.


역시나... 문제가 발생한다.


Failed to change file flags for '/Applications/Unity/Unity.app/Contents/Resources/PackageManager/BuiltInPackages/com.unity.modules.ai/package.json.meta'. errno: 13 UnityEditor.AssetDatabase:Refresh()


이따위 형태의 에러가 30개가 넘개 출력된다.


다행이 많은 동일한 현상들이 과거 업데이트 버전이 나올때 마다 발생한 듯하다.


생각보다 해결방법은 간단했다.


난 터미널이 아직도 낯설고 어렵다. 인천터미널이면 모를까.... ㅋㄷㅋㄷ


< 방법> 


1. 유니티를 종료 

2. 터미널 오픈

3. cd /Applications/Unity/Unity.app/Contents/Resources/PackageManager  입력

4. sudo chown -R $(whoami) BuiltInPackages 입력

5. password 라는 글 출력

6. 자신의 맥북 로그인 비밀번호 입력

7. 유니티 켜고 확인


그외 이슈는 딱히 없었다.




반응형

'개발이야기 > Unity & C# 코딩' 카테고리의 다른 글

Remote settings Scriting(리모트 세팅)  (0) 2018.09.13
Audio Mixer(오디오 믹싱)  (0) 2018.09.05
unity shake(혼들림)  (0) 2018.07.12
특정 방향 바라보면서 이동  (0) 2018.07.11
RayCast 2D  (0) 2018.07.11
반응형

오늘은 Unity Cloud Build 에 대해서 설명 드립니다.


UCB는 소스제어 프로그램 (외부) 또는 Collaba를 통한 소스 및 리소스를 바탕으로 빌드를 진행하는 시스템 입니다.


1. 무료 입니까?

- 처음 해본 바로는 한달은 무료 / 다음달 부터 9000원 정도의 월 결제가 필요합니다.


2. 유료로 이용하면서 쓸만한가요?

- 개인적으로 매달 9천원은 아깝다고 생각하지만 (매일매일 빌드를 하지 않기에) 빌드를 하는 측면에서보면 충분히 지급해서 사용할 만 합니다.


3. 장점은 무엇인가요?


Unity에서 스위치 플랫폼을 하지 않아도 IOS,AOS 등 다양한 플렛폼을 빌드할 수 있ㄷㅏ.

- 빌드 중 Unity를 사용할 수 있다.

- 협업을 하는 프로젝트에서는 더 큰 힘을 발휘한다.


4. 단점은 무엇인가요?

- 소스제어 프로그램을 사용해야한다. (Bitbucket OR collaba 그 외) 

- 초기에 세팅이 필요하다. (좀 많이 필요하다, 막힘 없이 한다면 1~2시간 / 초보자는 하루잡는게 맨탈건강에 이롭습니다. )

- 느리다. 약 5배정도의 시간이 소요된다고 보시면 됩니다. 

- IOS의 경우, Application Loader를 사용해야한다.


그래도 사용해보면 나름 편합니다.


[적용 단계]

1. 다음 플로우를 따라한다.


Unity 자습서에서 제공하는 단계를 따라하면 무리 없이 진행이 되었습니다.

한글 번역한 다른 페이지도 공유하오니 참고 하시면 됩니다.


최신 sourceTree와는 인터페이스는 차이가 있었지만 흐름을 보면 크게 어렵지 않았습니다.


[유니티 공식]

https://unity3d.com/kr/learn/tutorials/topics/cloud-build/creating-your-first-source-control-repository?playlist=17866


[개인 번역 페이지]

http://lonpeach.com/2017/03/10/unity-cloud-build/



[주의 사항]

- 위 버전들이 과거이다보니 뭐가 좀 달랐습니다.

- Unity 팀즈 어드밴스드를 사용하지 않으니 프로젝트에서 Cloud Build가 활성화 되지 않았습니다.

- 한달은 무료이니 사용해보시고 취소하시면 됩니다.


2. IOS 빌드


[IOS빌드 시 주의 사항]


P12.file 이 필요합니다.

http://devgom87.tistory.com/58


제가 이거저것 보고 간락하게 정리는 하였습니다.

저욱자세한 내용이 필요하시면 다른 구글링을 보시는게 좋을 듯합니다.


3. 공통 주의 사항


Player Setting  미리 하기

- xcode 및 cocoapob을 사용하셨더라면 마지막 단계에서 이것 저것 세팅을 하셨을 겁니다.

하지만 해당 방식은 미리 세팅을 모두 해야합니다.


버전, 번들ID, 아이콘 등


기타 문의 사항은 댓글 또는 dev.blackgom@gmail.com 으로 문의 주시면 아는 한에서는 답변 드리도록 하겠습니다.


그럼 좋은 하루 되세요!


반응형

'개발이야기 > 외부 기능 연결' 카테고리의 다른 글

게임 등록 - 이미지 준비  (0) 2018.09.04
.12 File  (0) 2018.07.16
Unpacking(난독화)  (0) 2018.07.12
Admob 베너 광고 끄기  (0) 2018.04.04
Google Play Game Center 연동  (0) 2018.04.03
반응형

Unity Cloud Build 시스템을 사용하기로 하였다.


생소한 내용일 수도 있다.. 하지만 한번 해보면 나쁘지 않다. 아니 빌드 시간은 오래 걸리지만 매우 편하다.


해당 프로세스를 이용하기 위해서는 제목 처럼 p . 12file 이 필요하다.


이글을 시작하기 전 미리 말씀드립니다.


1. 최소 IOS 개발자 가입 / 2. 1회라도 게임을 출시해본 분(IOS) 를 대상으로 작성하기에 매우 불친절 할 수 있습니다.

제 글 중 IOS 개발자 가입 부터 - 앱 최초 등록 부분을 보고 오시는게 좋을 것이라고 생각 합니다.


1. https://developer.apple.com 접속


2. Accout 탭 진입



3.Certificates. Identifiers & Prifiles 접근


4. App IDs 자신이 등록할 앱의 정보를 미리 입력


5. Provisioning ProFiles > Distrbution >+ (추가)


6. Distribution 을 App Store 로 체크 > 마무리


---------------------------------------------------------------

7. KeyChain 오픈


8. 자신의 Distribution 파일 선택


9. 오른쪽 마우스 클릭 > 내보내기 선택


10. 비밀 번호 입력 및 이름 정하여 저장할 것


여기까지 준비


이것을 가지고 Unity cloud Build를 세팅 하러 갑니다.




반응형

'개발이야기 > 외부 기능 연결' 카테고리의 다른 글

게임 등록 - 이미지 준비  (0) 2018.09.04
Unity cloud Build  (0) 2018.07.16
Unpacking(난독화)  (0) 2018.07.12
Admob 베너 광고 끄기  (0) 2018.04.04
Google Play Game Center 연동  (0) 2018.04.03
반응형

게임 개발의 마무리는 항상 암호화 등 안전장치를 하는 것으로 마무리가 됩니다.


암호화, 난독화는 무적의 철벽은 아니지만 그냥 더블클릭으로 내 게임이 까발려지는 것 정도는 막는 다고 생각하면 편합니다.


반대로 내 게임을 조작해서라도 한다면 그 것 또한 나쁘지 않겠지만 그래도 몇개월을 노력한 내용물이 인터넷 바다에 떠다니고 다른 옷을 입고 


나온다면 슬플 것 같습니다.


그래서 난독화를 이번에 다루겠습니다.


이번 난독화 asset은 유료 입니다...


무료나 다른 여러 방식이 있지만 간편하게 사용할 수 있고 주변에서 많이들 사용하시기에 다룹니다.


이름은 Obfuscator 


https://assetstore.unity.com/packages/tools/utilities/obfuscator-48919


사용 방법은 기본 설정을 그대로 사용하시면 될 정도로 편합니다.

스토어에서 보시면 유튜브 등 잘 설명이 되어 있습니다.


여기서 추가로 제가 다루고자하는 부분은 다음과 같습니다.


Q. 위 어셋을 사용하고 빌드도 잘 되었는데 화면이 터치도 안되고 기능이 정상 작동하지 않아요...!!


A: 아래 보이는 그림에서 설정을 수정해야합니다.


1. 아래 경로를 가세요

Obfuscator Iptions를 누르면 인스펙터 쪽에 정보가 출력됩니다.



2. Methods 쪽에 public쪽을 체크를 해제해주세요

메소드쪽이 같이 난독화가 진행되면서 정상 작동을 안하는 경우가 발생하는 것으로 파악이 됩니다.


그래도 안된다면 protected 부분을 해제하고 다시 진행해보세요. 


개발 환경에 따라 ㄴㅓ무 다양한 변수가 있기에 기본적인 부분을 다루며 조금 테스트를 하시면서 알아가실 필요도 있습니다.


반응형

'개발이야기 > 외부 기능 연결' 카테고리의 다른 글

Unity cloud Build  (0) 2018.07.16
.12 File  (0) 2018.07.16
Admob 베너 광고 끄기  (0) 2018.04.04
Google Play Game Center 연동  (0) 2018.04.03
Advertisements, ShowResult (Version=1.0.0) 오류  (0) 2018.03.07
반응형

게임 제작 시, 타격감을 살리기 위해서 진동 및 흔들림을 추가하는 경우가 있습니다.


이 때, 많은 방법이 있습니다.


애니메이션, 트렌스폼을 건드리거나 


오늘은 조금 더 랜덤한 느낌을 주는 방식을 설명합니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
IEnumerator Shake()
    {
        float t = 1f;
        float shakePower = 1f;
        Vector3 origin = transform.position;
 
        while(t > 0f)
        {
            t -= 0.05f;
            transform.position = origin + (Vector3)Random.insideUnitCircle * shakePower * t;
            yield return null;
        }
 
        transform.position = origin;
    }
cs


반응형
반응형

미사일 , 화살등 앞쪽 머리가 특정 방향을 바라보면서 자연스럽게 나아가는 방법입니다.


여타 방식들은 탄젠트 등 삼각함수를 이용하거나 매우 복잡한 형태를 제공하지만


해당 방식은 unity에서 제공하는 함수를 이용하여 컨트롤합니다.


세세한 조절은 값을 조절하면서 방식을 진화 시키시기 바랍니다.


아래는 2가지의 방식이지만 보시면 대상을 선택하는 방식의 차이만 있을 뿐 동일한 형태를 지니고 있습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public Transform targetTf; 
 
transform.right = targetTf.position - transform.position; 
 
 
 
 
        
Rigidbody2D rb2d;
 
void Start () {
   rb2d = GetComponent<Rigidbody2D>();
 }
    
  
void Update () {
   rb2d.transform.right = rb2d.velocity;
    } 
 
 
cs


반응형

+ Recent posts