midas+son의 크리에이티브(creative) 이야기

옛날엔 이클립스 사용하다

2년 내에는 Visual Studio 2013~2015만 사용하다가

요 근래 친구들이랑 안드로이드 앱 개발로 

안드로이드 스튜디오를 접하게 됐는데

단축키가 달라서 꽤 고생했었다.


인텔리J기반으로 만들어 졌다는데 

Visual Studio랑 비슷하게 키 셋팅 가능하다고 해서 가르침받았다.


File 메뉴 > Settings 클릭

> Keymap > Keymaps를 Default 에서 Visual Studio 로 바꾸면 된다.


익숙한 단축키로 바꾸니 개발이나 디버그에 좀더 수월해져서 다행이다.


부동소수점 float을 언리얼의 sting인 FString으로 바꾸거나 

그 반대일 경우... 1시간 동안 주의 사항을 공유하고자 한다.


float to FString을 하는 방법은 아래의 2가지

1. FString::Printf(TEXT("%f"), float변수));

2. FString::SanitizeFloat(float변수);

이는 -123.456L"-123.456"으로 정상적으로 바꾸어 준다.


FString을 float으로 바꾸는 방법은 언리얼 공식 doc에는

FCString::Atof(*strb); 라고 되어있으나 이는 결과가 0.0으로 변환된다.

그 이유는 앞 뒤에 "(쌍따옴표)가 포함되어있기 때문이다.


그래서 정상적으로 FString to float하는 방법은 아래의 2가지이다.

1. FCString::Atof(*FString변수.TrimQuotes());

2. TCString<wchar_t>::Atof(*FString변수.TrimQuotes());

둘 다 동일한 결과로 L"-123.456"값을 정상적으로 float 값인 -123.456로 바꾸어준다.

FString의 TrimQuotes()함수가 앞뒤의 "(쌍따옴표)를 제거해주는 함수이다.



유나이트 2017 초급 트레이닝 바이킹 게임 만들기


유니티 코리아 직원 - 프랑스인 줄리안 - 님의 강의와 

옆의 한국분 통역으로 진행되었다.


유니티를 다시 빠르게 되집어 보기 위해

중급이 아닌 초급을 신청하고 들었는데

4시간동안 계속 흥미진진하게 빠르게 지나갔다.


처음 부분만 너무 초급이라 좀 지루했지만

초반지나고부터 끝까지 흥미롭게 진행되었다.

대부분 다 아는 내용이지만 다시한번 핵심 내용만 빠르게 훑고 간단한 게임 하나가 완성 되었다.

스크립트 작업 없이 준비된 간단한 스크립트와 prefab으로 진행되었다.


진짜 유니티를 처음 해보는 사람이라도 

그렇게 어렵지 않게 게임을 만드는 경험과 

유니티의 기능에 대해 숙지 할수 있는 수준의 내용으로 준비되었는데

강의한 줄리안(?줄리앙??)의 노력이 돋보였다.

매 주마다 이 사람에게 새로운 강의를 듣고 싶을 정도다.


유니티로 게임을 하나라도 만들어본 사람이라면 너무 쉬운 내용이었는지 중간중간 나간 사람도 있었다는 듯하다.


유니티의 모든 기능에 대해서 4시간만에 알려줄수는 없으니 아쉬움이 남긴 했지만

다음에 이와 같은 방식의 트레이닝 행사가 있다면 또 듣고 싶다.(다른 주제와 난이도로...)

FTimerHandle timerHandle;

GetWorldTimerManager().SetTimer(timerHandle, this, &AController::Service, 0.1f, true);

위의 코드는 유일하게 하나의 함수를 Tick()과 다른 타임라인으로 지정된 시간 마다 호출 할 수 있다.

다른 곳에서 또 사용하면 이전에 썼던 SetTimer의 설정은 덮여씌워져 사라진다.


Actor내에서는 GetWorldTimerManager()를 부를 수 있는데

FTimerHandle 변수를 생성하여 SetTimer함수의 첫 인자값으로 넣고

2번째는 사용할 클래스(보통 this를 넣는다.)

3번째 인자에 함수의 주소를 넣는다.(AController 클래스의 Service()함수의 주소 => &AController::Service)

4번째 인자는 반복될 시간이다.

5번째 인자는 Loop할건지 안할건지 bool값을 넣는다. 안넣으면 기본 false다.

6번째 인자도 있는데 처음 호출할 때의 딜레이를 지정할 수 있다.

연산자 오버로딩 중 ==(같다), !=(다르다) 체크는 쌍으로 이루어 져야 한다.

둘 중에 하나만 존재하지 못한다.

아래의 예제 샘플은

새로운 클래스의 key라는 string변수 값이 같은지 체크하여 

bool을 리턴하도록 ==, !=연산자를 오버로딩 하였다.

//새로운 클래스

    public class EquipmentActor 

    {

        public string key;    //키값변수


        //단순하게 아래처럼 비교하면 null 과 비교 할 수 없어서 위험하다.

        //public static bool operator ==(EquipmentActor x, EquipmentActor y)

        //{

        //    if (x.key.Equals(y.key))

        //        return true;

        //    else return false;

        //}

        //public static bool operator !=(EquipmentActor x, EquipmentActor y)

        //{

        //    if (x.key.Equals(y.key))

        //        return false;

        //    else return true;

        //}


  //object로 바꾸어 null비교를 하고 진행한다.

        public static bool operator ==(EquipmentActor x, EquipmentActor y)

        {

            if ((object)x == null && (object)y == null) return true;

            else if (((object)x != null && (object)y != null) && x.key == y.key) return true;

            else return false;

        }


        public static bool operator !=(EquipmentActor x, EquipmentActor y)

        {

            return !(x == y);

        }


//근데 가장 심플한건 if비교 할때 if((object)변수 == nullptr)하는게 제일 깔끔한거 같다. 그러면 위의 object바꾸는건 다 없어질텐데...

}




Ctrl + F5로 Visual Studio에서 실행 시킬 때

위와 같은 에러 창이 나올 경우가 있다.

나 같은 경우 다른 h, cpp를 추가하고 인식을 못해

.sln파일과 Intermediate폴더를 지우고

uproject파일 우측 클릭으로 

Generate Visual Studio project files 를 눌러 

sln을 새로 만들어 실행했을 때 갑자기 발생했는데

해결법은 아래 스크린샷으로 설명하겠다.

시작할 프로그램에 대한 기존 설정이 지워져 

UE4로 엔진 디렉터리의 실행파일을 찾았던 것으로 판단된다.


우리가 만든 프로젝트를 우측 클릭하여 

Set as StartUp Project를 선택하면

다시 Ctrl + F5를 했을 때 정상적으로 내 언리얼 프로젝트가 실행된다.

Error CS0619

'UnrealBuildTool.RulesCompiler.GetModuleFilename(string)'은(는) 사용되지 않습니다. 

'GetModuleFilename is deprecated, use the ModuleDirectory property on any ModuleRules instead to get a path to your module.'


프로젝트.Build.cs 에서 모듈경로 추가하기 위해 사용했던 부분이 

버전 업되면서 바뀌었다.(지금은 4.15.1 사용 중)


    private string ModulePath

    {

        //get { return Path.GetDirectoryName(RulesCompiler.GetModuleFilename(this.GetType().Name)); }    //NO

        get { return ModuleDirectory; }    //YES

    }


20170505_족발

개인사/밥2017. 5. 6. 23:55

[족발(중)과 칼국수 무한]


대화역에서 여친이랑 먹은 족발집

이름이 홍대칼국수와 족발 이다.

체인점이다.


족발 중짜리 3만원


이집은 진짜 짱이다.

족발이 이렇게 부드러울수 없는데

사장님 인심이 더욱 부드럽다.

하나하나 세세하게 챙겨주실려는 모습에

맛나게 먹고 나왔다.


칼국수는 생명이라 끓이는데 오래 걸린다.

미리미리 넣어두자.

맛나서 한번 더 육수와 리필했는데 리필도 맛났다.

여친도 너무 좋아라 했다.


배 부등켜 안고 배부르다며 귀가했다



'개인사 > ' 카테고리의 다른 글

20170525_싸와디캅 조식 + 스벅  (0) 2017.05.25
20170420_마라샹궈  (0) 2017.04.21
20170420_편도  (0) 2017.04.20
20170417_편도  (0) 2017.04.17
20170414_라멘  (0) 2017.04.16

여친이랑 다녀온 꽃박람회

서울에서 그나마 가까운 정발산역의 호수공원에서 한다.


네이버에서 예약하면 할인해주지만 대중교통을 이용한다면 

네이버 예약할인보다 더 할인된 1인 9000원에 입장권을 살 수 있다.(낮 기준)

버스나 지하철 타고 온 티머니카드나 후불교통카드를 건내주면 체크해준다.

4월 28일부터 5월 14일 까지 한다.


여친이 진짜 만족해 하는 관람이었다.

여러 꽃들의 향기와 볼거리

각 나라의 기술로 만들어진 꽃전시

야외 공연과 먹거리

가족들이나 연인과 함께하온 사람들 구경

행복에 둘러쌓인 기분이다.


정말 많은 사진을 남겼다.

그 중에 꽃위주로 몇몇 골라 올려본다.


연휴되기 전에 주문해서 그런가
끝나갈때 보게되어버린...

아무리그래도
이틀전엔 올 줄 알았는데
꼬박 6박7일걸리네

그래 같이 쉬고 같이 일합시다