분류 전체보기 썸네일형 리스트형 WWW로 렉없이 텍스쳐 로드하기 var www = UnityWebRequestTexture.GetTexture("https://static.pexels.com/photos/236047/pexels-photo-236047.jpeg"); yield return www.SendWebRequest(); var texture = DownloadHandlerTexture.GetContent(www); 더보기 피격 파편 효과 주기 파편 튀는 효과를 만들 때 파편이 카메라쪽으로 튀게 해야지 훨씬 그럴듯해 보인다. 랜덤으로 튀거나, 뒤로 튀면 어차피 잘 보이지도 않음. 더보기 [AzureFunctions] 드랍박스 파일 연동하기 Azure Functions에서 드랍박스의 파일을 읽어올 수 있습니다.이 기능은 Function이 외부의 설정 파일등을 읽어서 동작해야 하거나, 혹은 Function의 실행 결과를 파일에 저장해야 할 때 사용할 수 있습니다. 함수의 '통합' 메뉴를 클릭합니다. 입력 항목에 '외부 파일'을 추가합니다. 'API' 를 Dropbox로 선택하고, 안내에 따라 드랍박스 로그인을 수행합니다. 드랍박스 내의 읽어올 파일 경로를 설정합니다. (test.json 등) 설정이 완료되면 함수 내에 파라미터를 선언함으로써, 파일을 읽어올 수 있습니다. 아래 코드의 inputFile에 자동으로 파일 내용이 로드됩니다. public static HttpResponseMessage Run( HttpRequestMessage re.. 더보기 Jenkins에서 CakeBuild 사용하기 (OSX 기준으로 작성됨) 빌드 스크립트 실행하기 export PATH=/usr/local/bin:${PATH} curl -Lsfo build.sh http://cakebuild.net/download/bootstrapper/osx chmod +x build.sh ./build.sh 젠킨스 파라미터를 ScriptArgs로 넘기고 싶을 때 args=-skip=${SKIP} ./build.sh --script-args $args 빌드 타겟 태스크 설정하기 ./build.sh --target TARGET_NAME 더보기 메세지 기반 프로그래밍 - 3 메세지 기반 프로그래밍은, 기존에 ~~Manager 등으로 강하게 커플링된 오브젝트간의 연결을 해소한다는데에 목적을 두고 있지만, 너무 메세지에 몰빵해버리면 오히려 불편한점도 생기기 마련이다. 예를들어 현재 플레이어의 체력같은 경우에는 여러가지 오브젝트들이 공유할 수 있다.( 상태창 UI, 적군 인공지능, 펫 등...) 플레이어 오브젝트가 체력이 변할때마다 Change 메세지를 매번 발송해서 처리할 수도 있겠지만,, 받는쪽에서도 번거롭게 수신자를 만들어야하고, 플레이어쪽에서도 변하는 모든 부분에서 발송 코드를 작성해야 한다. 분명 이러한 구조는 이전의 GameManager.playerHp 에 접근하는것보다 몇배는 더 불편하다. 이러한 구조적 불편함을 해소하기 위해서 Rinity (https://githu.. 더보기 [aws] GameLift Activating 상태에서 멈춤 해결하기 SERVER_PROCESS_CRASHEDServer Process exited without calling process ending with exit code -532462766. (C:\game\Sample.exe a) 게임리프트 콘솔에 빌드를 업로드하고 플릿을 만들었는데 Activating 상태에서 넘어가질 않는다.조금 더 기다리면 위와 같은 에러 이벤트를 볼 수 있다. ProcessReady 함수만 제대로 호출되도 Active 상태로 전환될텐데, 아무래도 해당 함수가 호출이 안되서 계속 Activating 상태로 남아있는듯 보인다. * ProcessReady 호출 이전에 프로그램이 죽는 포인트가 없는지 검사한다.* 빠진 DLL이 없는지 검사한다. (DLL에서 사용하는 또다른 DLL도 있을 수 있으.. 더보기 [IL2CPP] Avoid Boxing Avoid BoxingIL2CPP OPTIMIZATION : Avoid Boxing Boxing은 코스트가 높은 연산이다. 이 글에서는 기존 C# 컴파일러는 특정한 상황에서 불필요한 Boxing이 수행되고, IL2CPP가 이를 어떻게 회피하는지를 보여준다.기존 C# 컴파일러의 방식interface HasSize { int CalculateSize(); } struct Tree : HasSize { private int years; public Tree(int age) { years = age; } public int CalculateSize() { return years*3; } }public static int TotalSize(params T[] things) where T : HasSize { va.. 더보기 [C#] Linq.Expression Snippets 원본 : https://github.com/pjc0247/LinqExpressionSnippets LinqExpressionSnippetsSystem.Linq.Expression 네임스페이스 아래의 기능들에 대한 복붙용 코드 조각들. Lambda를 Expression으로 전달받기람다의 타입 판별public static void Foo(Expression f) { // Foo(() => Math.Abs(1)); if (f.Body is MethodCallExpression) Console.WriteLine("MethodCallExpression"); // Foo(() => pos.x); if (f.Body is MemberExpression) Console.WriteLine("MemberExpression.. 더보기 [MSIL] 람다식의 캡쳐 구현하기 쓰다말음 void Foo(int a, int b, int c) { return a + b + c; } var Foo2 = (int c) => { return Foo(10, 20, c); }; 위의 경우처럼 함수의 인자를 줄이기 위해서 람다식을 사용하는 경우가 있다.c++의 std::bind 같은 메소드가 제공되면 편하겠지만, C#은 그러한 메소드를 제공하지는 않는다. 정상적인 코드라면 그러한 메소드를 사용하는것보다 람다함수의 캡쳐를 쓰는게 훨씬 낫기 때문에. 하지만 런타임에 위 코드처럼 어떤 메소드의 인자를 줄이고 싶은 상황에서는 상당히 불편하다. 따라하기 위해서는 먼저 C# 컴파일러가 람다와 캡처를 어떻게 처리하는지를 알아야 할 필요가 있다. (보고 배끼기 위해서) string message = "He.. 더보기 [C#] Async,Await의 내부 원본 https://github.com/pjc0247/behind_async_await behind_async_awaitC#은 stackless한 코루틴을 지원합니다. 어케 가능한지 아라보자static async void Foo() { Console.WriteLine("A"); await Task.Delay(1000); Console.WriteLine("B"); await Task.Delay(1000); Console.WriteLine("C"); }아래의 코드는 Foo 함수를 디컴파일 한 결과물을 기반으로 다시 작성되었습니다. 대충 필요한것만 남기고 생략함class MyAsync : System.Runtime.CompilerServices.IAsyncStateMachine { internal AsyncV.. 더보기 이전 1 2 3 4 ··· 11 다음