[링크] KB 국민 파인테크 (FINETECH) 카드란? [8가지 혜택]
'Etc' 카테고리의 다른 글
[링크] NDC 2016-강연 자료를 한 자리에 모아 보아요! (0) | 2016.04.29 |
---|---|
크런치 (0) | 2016.03.27 |
DL (0) | 2016.01.29 |
[펌] 소녀 (0) | 2015.12.18 |
FYI (for your information) (0) | 2015.09.15 |
[링크] NDC 2016-강연 자료를 한 자리에 모아 보아요! (0) | 2016.04.29 |
---|---|
크런치 (0) | 2016.03.27 |
DL (0) | 2016.01.29 |
[펌] 소녀 (0) | 2015.12.18 |
FYI (for your information) (0) | 2015.09.15 |
[펌] DeployGate 이용한 앱 배포 (0) | 2016.04.05 |
---|---|
[펌] 윈도우10(Windows 10) 예약 프로그램 삭제하는 법 (0) | 2016.03.19 |
[일본 모바일 트렌드] 모바일 게임에 사용되는 심리기술 7가지 (0) | 2016.01.07 |
윈도우7/8/10 간단하게 usb부팅디스크 만들기(usb설치) (0) | 2015.12.06 |
[펌] 티스토리 초대장 없이 가입 및 블로그 개설하기 (0) | 2015.06.30 |
으흠??
GPGS 를 이용하고싶으시다면 가장 좋은 예제를 이미 구글에서 샘플을 만들어놔서 그걸 보시면 편하실겁니다.
구현자체가 이미 잘되있어서 상당히 쉽게 구현하실 수 있어요.
P2P방식의 멀티플레이도 지원이되고 리더보드나 업적등등 뭐 다양한 기능들이 많아요.
iOS같은 경우는
게임센터라는것이 있습니다. 애초에 방식이 구글이 훔쳐배운건지?? 거의 비슷비슷하게 구현이 되어있더라구요.
https://github.com/playgameservices/play-games-plugin-for-unity
유니티라 하시니 일단 구글에서 지원하는 예제소스 입니당!
[링크] Low-latency_Sound_for_UnityAndroid (0) | 2016.08.18 |
---|---|
[펌] TexturePacker (0) | 2016.05.10 |
[펌] AWS Cognito + Unity3d (0) | 2016.02.14 |
[펌] 해외 무료 푸시서버(pushwoosh) 연동하기 (android, iOS 샘플코드) (0) | 2016.02.14 |
[에셋] 유니티용 네트워크 엔진(넷드론) (0) | 2016.01.04 |
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEditor;
public class FindReferencesToThis : ScriptableObject
{
[MenuItem("CONTEXT/Component/Find references to this")]
private static void FindReferences(MenuCommand data)
{
Object context = data.context;
if (context)
{
var comp = context as Component;
if (comp)
FindReferencesTo(comp);
}
}
[MenuItem("Assets/Find references to this")]
private static void FindReferencesToAsset(MenuCommand data)
{
var selected = Selection.activeObject;
if (selected)
FindReferencesTo(selected);
}
private static void FindReferencesTo(Object to)
{
var referencedBy = new List<Object>();
var allObjects = Object.FindObjectsOfType<GameObject>();
for (int j = 0; j < allObjects.Length; j++)
{
var go = allObjects[j];
if (PrefabUtility.GetPrefabType(go) == PrefabType.PrefabInstance)
{
if (PrefabUtility.GetPrefabParent(go) == to)
{
Debug.Log(string.Format("referenced by {0}, {1}", go.name, go.GetType()), go);
referencedBy.Add(go);
}
}
var components = go.GetComponents<Component>();
for (int i = 0; i < components.Length; i++)
{
var c = components[i];
if (!c) continue;
var so = new SerializedObject(c);
var sp = so.GetIterator();
while (sp.NextVisible(true))
if (sp.propertyType == SerializedPropertyType.ObjectReference)
{
if (sp.objectReferenceValue == to)
{
Debug.Log(string.Format("referenced by {0}, {1}", c.name, c.GetType()), c);
referencedBy.Add(c.gameObject);
}
// 선택된 오브젝트가 텍스쳐일 경우 매트리얼에서 MainTexture 이름 비교
// 쉐이더에 링크된 텍스쳐가 여러개일 경우 ShaderUtil로 프로퍼티를 다 받아와서 비교해야 될 듯..
System.Type cToType = to.GetType();
if (true == cToType.Name.Equals("Texture2D"))
{
if (null != sp.objectReferenceValue)
{
System.Type cSpType = sp.objectReferenceValue.GetType();
if (true == cSpType.Name.Equals("Material"))
{
Material mat = sp.objectReferenceValue as Material;
if(null != mat.mainTexture && true == to.name .Equals(mat.mainTexture.name))
{
Debug.Log("[c.gameObject ] " + c.gameObject);
referencedBy.Add(c.gameObject);
}
}
}
}
}
}
}
if (referencedBy.Any())
Selection.objects = referencedBy.ToArray();
else Debug.Log("no references in scene");
}
}
List<Texture> allTexture = new List<Texture>();
Shader shader = obj.renderer.sharedMaterial.shader;
for(int i=0; i<ShaderUtil.GetPropertyCount(shader); i++) {
if(ShaderUtil.GetPropertyType(shader, i) == ShaderUtil.ShaderPropertyType.TexEnv) {
Texture texture = obj.renderer.sharedMaterial.GetTexture(ShaderUtil.GetPropertyName(shader, i));
allTexture.Add(texture);
}
}
[펌] 유니티 작업에 대한 50 팁 (모범 사례) 50 Tips for Working with Unity (Best Practices) (0) | 2016.03.22 |
---|---|
[링크] 유니티 관련 괜찮은 자료 (0) | 2016.03.20 |
Texture, Resource.... and Memory!! (0) | 2016.01.07 |
unity에서 facebookPlugin과 기타Plugin사용시 충돌 해결 방법 (0) | 2016.01.04 |
유니티 admob 클릭이 안되는 경우 (0) | 2016.01.04 |
Momentum And Spring
옵션을 주면.
양끝.
1~10번까지의 리스트가 있다면.
1번에서 리스트에 없는 0번위치까지 드래그가 되서 다시 1번으로 스프링되서 돌아오는 방식이다.(10번도 마찬가지 없는 11번으로 갔다가 다시 원래 10번으로 돌아옴)
Momentum
옵션은.
그냥 정확히 끝에 1번이나 10번에서 멈춰서 양끝으로 더이상 드래그가 되질 않는 방식이다.
이 두개를 합쳐서
Momentum And Spring
옵션을 주고.
한쪽방향은 더이상 못움직이게. 한쪽방향은 스프링처럼 돌아오게 하려면.
UIScrollView - 클래스에서.
[펌] Smart Localization with NGUI (0) | 2016.09.26 |
---|---|
[펌] 유니티3D 튜토리얼 - 01 - NGUI로 커버플로우 간단 구현 (0) | 2016.03.23 |
[개조] NGUI 스크롤뷰 아이템 재사용 스크립트 (0) | 2015.12.08 |
[펌] NGUI와 BMFont를 이용한 데미지(숫자) 폰트 만들기 (0) | 2015.10.21 |
NGUI UISprite 회색처리하기 / 강조처리하기 (0) | 2015.07.15 |
using System.Text.RegularExpressions;
bool IsValidStr(string text)
{
string pattern = @"^[a-zA-Z0-9가-힣]*$";
return Regex.IsMatch(text, pattern);
}
텍스트의 문자열이 대소문자, 알파벳, 숫자, 한글인지 체크하는 정규식이다.
특수 문자를 사용할수 없게 한다.
참고 할만한 곳 : http://highplus.org/app/header/js/fun_form_check.js@cacheBreak=
출처 : http://tenuakan.tistory.com/108
[링크] 정규식 체크 사이트 (0) | 2017.12.05 |
---|---|
[펌] C# - 정규식을 이용한 문자 변환 (0) | 2016.04.15 |
C# 숫자,영/소/대문자, 입력사이즈 제한 - 정규식 (0) | 2010.10.28 |
TextBox에 한글, 영어, 숫자만 입력받기. (1) | 2010.06.25 |
[펌] 텍스트박스에 한글만, 영어만, 숫자만 입력하기 (0) | 2010.05.25 |
Git : https://github.com/aws/aws-sdk-unity
http://aws.amazon.com/ko/mobile/sdk/
위 페이지에 들어가면 아래와 같이 Unity버전 AWS SDK를 다운로드 받을수있습니다.
다운로드를 받아서 ZIP파일을 풀면
아래와 같이 서비스 별로 SDK가 분류되어있는 것을 확인할수있을텐데요.
우리는 여기서 extas에 있는 aws-unity-sdk-cognitosync-2.0.0.4.unitypackage를 실행시켜주어 import해주도록 하겠습니다.
Import가 완료되면 프로젝트 탐색창에서 AWSSDK\example\Congnito Sync에 있는 CognitoSyncManagerSample.unity을 실행하여 장면을 연뒤 Play를 눌러 샘플을 실행해보도록 합시다.
Play를 누르게 되면 위 그림과 같이 AgumentNullException이 발생하는데요.
Play를 중단시키고 Hierachy에서 CognitoSyncManagerSample오브젝트를 선택하면 나타나는 Component의 Identity Pool Id값을 채워주어야하는데요.
해당 PoolId값을 만들려면 우선적으로 aws에 샘플에서 사용할 identity pool을 생성하여야합니다.
https://console.aws.amazon.com/cognito/create/.
Aws에 가입되어있다면 위 링크를 통해 새로운 identity pool을 생성할수있습니다.
이름 같은 경우 원하는대로 작성해서 넣으시면 되고 해당 샘플을 테스트 해보려면 Unauthenticated identities에 있는 Enable access to unauthenticated identities을 체크해두어야합니다. (기본값은 체크가 해제되어있습니다.)
샘플의 추가적인 Facebook 연동을 테스트하려면 FacebookSDK도 설치되어있고 추가적인 세팅이 필요하니 이번 포스트에서는 다루지않도록 하겠습니다.
어쨌든 생성을 하고나면 위와 같은 페이지로 이동하는데요. 설정에서도 확인할수있지만 해당 페이지에서도 Identity Pool ID를 확인할수있습니다. 이를 복사한뒤에 Unity로 돌아와서 CognitoSyncManagerSample의 Identity Pool Id값을 채워주도록 합시다.
해당 값을 채운뒤 다시 Play를 누르게되면 에러가 뜨지 않고 아래와 같은 화면을 볼수있습니다.
Full Name과 alias를 입력한뒤 Save offline을 누르면 단순히 기기내에 있는 cognito dataset에 저장을 합니다. 내부적으로는 아래와 같은 코드로 동작합니다.
playerInfo.Put("playerName", playerName);
playerInfo.Put("alias", alias);
playerInfo는 Dataset이라는 클래스로 선언이 되어있으며 이는 Put으로 특정 키와 값을 넣어줄수있습니다. 어플을 삭제하지않는 이상 이 값은 내부적으로 저장이 되도록 되어있습니다.
여기까지는 Unity에서 제공하는 PlayerPref와 같은 기능을 하는것처럼 보입니다. 이번에는 Sync with Amazon Cognito버튼을 클릭해보도록 하겠습니다.
해당 버튼을 클릭하게 되면 내부적으로 비슷하게 Dataset에 Put해주는것까지는 Save offline을 눌렀을때와 같지만 Put이후에 Dataset::Sychronize메서드를 호출해주어 AWS에 있는 IdentityPool에 저장해주도록 되어있습니다.
AWS Cognito Console로 이동하여 Identity browser탭을 클릭하면 아래와 같이 cognito를 통해 싱크된 사용자 데이터를 확인할수있습니다.
만약에 sychronize에서 문제가 생긴다면 Identity pool id가 잘못되었거나 Unauthenticated identities에 있는 Enable access to unauthenticated identities을 체크를 하지않았는지 다시 한번 확인해보면 될것입니다.
[펌] TexturePacker (0) | 2016.05.10 |
---|---|
[펌] GPGS (1) | 2016.03.08 |
[펌] 해외 무료 푸시서버(pushwoosh) 연동하기 (android, iOS 샘플코드) (0) | 2016.02.14 |
[에셋] 유니티용 네트워크 엔진(넷드론) (0) | 2016.01.04 |
[에셋] Android Keyboard (with NGUI) (0) | 2015.12.23 |
해외에서 무료 푸시서비스로 개발자들에게 가장 추천받는 pushwoosh 서비스 연동 안내 방법(한글^^;)과 샘플코드입니다.
무료 푸시서비스를 검색하면 해외는 수십개가 나오는데 국내는 전무하네요... 암튼 앱개발자 분들 중
서버가 없거나 푸시서비스를 위하여 서버를 유지하기 어려운 경우에 사용하시면 좋습니다.
간단히 pushwoosh에 대해 말씀드리면
- pushwoosh.com에서 제공하는 push 서비스로 사용이 무제한입니다.
( 단 다운로드 device가 1,000,000 이상인경우 부터는 유료버전을 사용해야 합니다.제가 만든 앱이 100만대 이상의 디바이스에 설치만 되면 ......쩝.. 그래서 전 그냥 완전 무제한이라 생각합니다. )
- 가입은 이메일 인증만 하면 됩니다.
- 이메일 계정당 5개의 앱을 관리 할 수 있습니다.
- 간단한 통계 정보를 보여줍니다.
기타 기능들은 많으나 여러 기능들을 사용하기 위해서는 유료버전을 사용하셔야 합니다. 그러나 해외에서 무료 푸시서버로 가장 추천을 많이 받는 서비스로 회사 또는 개인적으로 푸시서버를 유지하기 어려우신 분들은 한번 사용해보는 것도 나쁘지 않을 것 같습니다.
아래는 연동안내서와 네이티브 연동 코드 샘플입니다. 샘플코드는 applusform.com의 앱템플릿과 연동하는 코드도 몇 줄 있으나 대부분 네이티브코드인 관계로 개발자라면 쉽게 코드를 이해하실 꺼라 생각합니다.
http://www.applusform.com/down/Pushwoosh.pdf [연동안내서]
http://www.applusform.com/down/Pushwoosh.zip [연동안내서 + 샘플코드 (android, iOS)]
그럼 쉬운 앱개발 템플릿을 제공하는 ApplusForm 이었습니다~~ ^^;
[펌] GPGS (1) | 2016.03.08 |
---|---|
[펌] AWS Cognito + Unity3d (0) | 2016.02.14 |
[에셋] 유니티용 네트워크 엔진(넷드론) (0) | 2016.01.04 |
[에셋] Android Keyboard (with NGUI) (0) | 2015.12.23 |
[링크] Live2D 적용 및 튜토리얼 (0) | 2015.12.17 |
[펌] 4. Coroutine 구현에 대해서 공부 (0) | 2016.05.11 |
---|---|
[펌] Root Motion in Legacy Animation (0) | 2016.03.28 |
GameObject active 여부와 Coroutine / Invoke... (0) | 2016.01.07 |
임의시간 받아서 시간 표현하기 (0) | 2015.10.28 |
Control ParticleSystem RenderQueue (0) | 2015.09.24 |
[파일]
스크립트 출처
http://forum.unity3d.com/threads/3dsmax-y-up-script.220104/
*ms스크립트 사용법: 맥스 화면에 Drag&Drop 하면 맥스에 스크립트 창이 뜬다.
원문 출처 http://blog.naver.com/blue9954/220615535678
[원문에서 퍼온 글.]
3DMAX는 생소하게 느껴지시는 분들이 많겠지만, 건축CG를 목적으로 만들어진 툴입니다. 따라서 AutoCAD와 동일하게 높이를 Z로 계산하지만, 게임엔진... 예를 들어 유니티의 경우 높이를 Y로 계산합니다. 마야의 경우 애초에 영상물을 만들 목적으로 개발되어 화면을 기준으로 높이를 Y로 계산하기에 아무 문제없지만, 맥스의 경우 오브젝트의 피봇을 Y축을 위로 올라오게 일일이 수정해 주어야 합니다.
이러한 작업을 원버튼으로 해주는 스크립트입니다. 사용 방법은 첨부한 스크립트를 맥스에 드래그해 넣은 다음, 원하는 오브젝트들을 선택하고 새로생긴 창의 버튼을 눌러 주면 됩니다.
Z와 Y. 축이 다른 이유는 사용하는 좌표계가 다르기 때문.
맥스: 오른손 좌표계 // 마야, 언리얼, 유니티: 왼손 좌표계.
좌표계에 대한 자세한 건, 아래 링크 참조.
블로그 내용 중에 기억하고 싶은 것
좌표계가 달라서 생기는 문제는 맥스에서의 프랍이 엔진으로 넘어갈 때 Y축으로 90도 돌아가는 현상이다. 모든 더미와 뼈들은 맥스에서 제작(오른손 좌표계)해서 넘어오기 때문에 자동으로 부모의 축을 따라가기 때문에 문제가 없지만, 무기에 붙은 소켓 더미는 언리얼에서 제작(왼손 좌표계)되면 좌표계가 달라서 프랍이 혼선이 생기게 된다.
그래서 무기 축 더미는 엔진에서가 아닌 맥스에서 만들어서 사용하여 문제를 해결했다는 내용.
테스트해 본 결과 리뷰.
왼쪽 주전자: 맥스에서 바로 꺼낸 주전자의 피벗을 보면 Z축이 위로 올라가 있는 것을 확인할 수 있다.
오른쪽 주전자: 스크립트를 적용한 주전자. Y축이 위로 올라가 있다.
보통 fbx로 익스포트 할 때 옵션을 아래 사진처럼 Y-up 으로 하고 익스포트를 하게 되어서
맥스와 유니티, 언리얼을 오가며 보이는 캐릭터들의 방향에 육안으로 확인할 때의 다른점은 없었는데, 오늘 포스팅의 스크립트는 이것대로 또 쓸 일이 있을 것 같다.
예를들어, 메쉬만 엔진으로 데려갈 경우에 캐릭터가 90도 누워있는 현상은 익히 경험했기 때문이다. 이 스크립트를 사용하면, 맥스에서 보는 좌표와 엔진에서 보는 좌표가 동일하다는 장점이 있으니까.
....궁금해서 테스트를 더 해볼까 한다... 축이 뭐길래.
<물체의 축에 따라서 엔진에서의 차이.>
사진에서 왼쪽 유니티 인스펙터 창. 오른쪽 맥스 창
맥스 좌표 그대로 익스포트->유니티로 갖고왔을 때. (X축이 -90도 돌아가 있음)
축을 왼손좌표계로 돌려준 다음 익스포트-> 유니티로 갖고왔을 때.(맥스와 유니티 좌표 일치)
임포트 된 이 두 주전자를 유니티 씬으로 갖고왔을 때의 차이는 아래처럼 없어보인다.
실제로는 두 주전자의 축이 차이가 있지만 없어보이게만 할 뿐.
유니티는 자체의 버텍스들을 y축기준으로 180도 회전시킨후에 rotation transform의 x축에 -90도를 적용하여 좌표계를 변환시키므로 버텍스가왼손 좌표계 기준으로 변환되는것은 아니다. x,y축 변경을 통해 그렇게 보이게 만들뿐이다.
이 내용은 유니티 FBX Export 옵션에 대한 아래 설명에서 참조했다.
http://wiki.maayalee.com/mediawiki/index.php?title=Unity3D_FBX_Export
이래도 저래도 어쨌든 제대로 보이는 디자이너와, 실질적인 축의 방향을 고려해야하는 프로그래머와의 작업방식의 차이가 있을 수 있기 때문에 각 파트에서 특별히 요청이 있을 때 고려해도 될 듯 하다.
아래는 맥스와 축이 다른 엔진때문에 고민하는 프로그래머들의 질의 문답.
http://devkorea.co.kr/bbs/board.php?bo_table=m03_qna&wr_id=40302
[Link] 3DS Max ScriptSpot (0) | 2016.10.10 |
---|---|
[펌] Max Script에서 한글(주석 등) 깨짐 문제 (0) | 2016.10.04 |