파렌하이트 MYPI

파렌하이트
접속 : 3825   Lv. 55

Category

Profile

Counter

  • 오늘 : 2 명
  • 전체 : 112794 명
  • Mypi Ver. 0.3.1 β
[작업] (0) 2018/06/08 AM 11:05

 

using UnityEngine.PostProcessing;

public PostProcessingProfile Postprocess;

 

Postprocess.bloom.enabled = Boolm;

BloomModel.Settings bloomSettings = Postprocess.bloom.settings;

bloomSettings.bloom.intensity = 1

Postprocess.bloom.settings = bloomSettings;

 

Postprocessing 기능을 런타임 중에 사용할수 있도록한다.

위의 예제는 Bloom 효과를 예로 들었다.

신고

 
[작업] (0) 2018/05/29 AM 11:32

본 글은 비공개 게시물이며, 본인만 볼 수 있습니다.

신고

 
[식단] 저탄고지 다시 시작합니다. (14) 2018/05/15 PM 02:01

16년도 말 갑작스레 저탄고지 열풍이 불었던 당시 저도 저탄고지에 도전한적이 있었죠.

초반에는 적응하는데 고생이었지만 점차 체중이 줄어드니 점점 재미를 붙이다, 

나중에 가서는 오히려 치킨이나 피자, 햄버거, 라면, 만두 등 쉽게 접할 수 있으면서도 맛나는것들을 더이상 접하지 못하는 까닭에 한두달 하고 그만두었습니다.

 

물론 효과는 나름 있었습니다. 5 ~ 6키로 정도 감량 했었죠.

만약 운동까지 겸했다면 훨씬 좋았겠지만, 워낙 운동하기도 귀찮았고 계절도 슬슬 겨울로 접어드는 시기라 그냥저냥 흐지브지 되어버렸죠.

 

그렇게 시간이 흘러 오늘 내과에 다녀왔습니다.

올해 겨울이 지났을무렵부터 갑작스레 쉽게 피곤함을 느끼게 되었는데, 처음에는 그저 나이를 먹나보다 싶었던게, 

요 근래에는 휴일엔 노는 시간이 아까워 낮잠조차 자지 않았던 제가 일요일마다 한 두 시간씩 낮잠을 자는 기이한 상황을 겪게 되었습니다.

이상하다싶어 지난주에 직장에서 혈액검사를 하게 되었는데 아니나다를까. 

 

당뇨병 전 단계랍니다-_-;

 

사실 별로 놀랍지도 않은게, 이미 어머니께서 당뇨를 앓고 계시기도 하였고,

제가 워낙 운동을 귀찮아하니 체중은 체중대로 늘어난 상태에서 언젠가 당뇨가 찾아올것을 알았지만, 이렇게 빨리 올줄은 몰랐습니다.

어제 원장님에게'이 나이에 당뇨가 왔으면, 니 인생 종친거야' 라는 소리까지 들었죠. 물론 반쯤 농담이었겠지만, 일반인도 아니고 의사에게 직접 그런 들으니 색다른 기분이 들덥니다.

 

내과에서는 아직 당뇨는 아니니 약을 처방해 줄순 없고, 우선적으로 체중을 줄여야한다고 경고하더군요.

이대로 가다간 당뇨로 직행한답니다. 그렇게 문진중에 갑작스레 저탄고지가 떠오르더군요.

 

예전에는 단순히 체중감량을 해보려고 도전했지만, 이젠 목숨을 구하기위해 도전해야할 판입니다.

운동도 같이 시작하면 좋겠지만, 식단 조절에 운동까지 겸하면 십중팔구 작심삼일이 될게 뻔한지라, 우선적으로 식단부터 조절해야겠습니다.

 

신고

 

써냔    친구신청

일형당뇨 아니면 관리 잘 하면 됩니다.
그런데 젊어서 걸릴수록 나이 믿다가 관리 잘 못하다고;;; 간호사분이 그러시더라고요.
탄수화물(당 포함) 섭취가 줄면 혈당도 덜 올라가서 도움 많이 됩니다.

파렌하이트    친구신청

나이 믿고 이것저것 막 먹다가 훅 갈뻔했습니다ㄷㄷ

마리다크루스    친구신청

저도 내년에는 40인데 벌써 고지혈증 약 타먹는 중이네요... 같이 힘냅시다...ㅜㅡ

파렌하이트    친구신청

슬슬 몸 관리를 해야겠습니다.
젊으니 건강도 괜찮겠지 싶었는데 그게 아니었네요.

^알렉스^    친구신청

천연사과식초를 식사전에 물에 희석해서 한컵마시세요.

웨이    친구신청

근거없는 건강식? 영양식은 본인과 가족에게만...

할아버    친구신청

근거있는 방법이구요. 당뇨에 걸린 사람보단 주인장님처럼 대사증후군단계에 있는 사람들에게 더 효과가 있는걸로 알고있습니다.

파렌하이트    친구신청

참고해볼게요ㅎㅎ

Artyna R.S    친구신청

카카오닙스 100%, 당조고추 추천이요. (250 -> 170대로 떨어졌고 계속 조금씩 떨어지고 있습니다.)

파렌하이트    친구신청

의외로 고추가 탄수화물이 많던데, 당조고추는 찾아보니 혈당 저하에 좋다고하네요.

버섯먹는마리오    친구신청

운동이 필수인데....

파렌하이트    친구신청

운동도 겸해서 해야죠.
다만 이제 막 시작하는 단계인지라 운동까지 겸하면 중도포기할것 같습니다 ㄷㄷ

뭉게구름이    친구신청

저탄고지 저도 10키로 정도 빼고 중단해서 다시 원복이 되었는데..워낙에 면을 좋아해서... 빠졌다고 주구장창 먹었더니... 근데 저탄고지를 중단한 이유가 저는 콜레스테롤 때문이었습니다. 나아지지 않고 오히려 자꾸 늘어서 중단 했거든요..

파렌하이트    친구신청

우선 체중감량 및 탄수화물 섭취를 줄이는게 목표라서 콜레스테롤은 나중에 혈액검사 다시 해봐서 나쁘게 변하면 식단 유지를 할지 고민해봐야겠네요. 지금 제 경우에는 아직까지 콜레스테롤이 나쁘거나 하진 않습니다.
[작업] (0) 2018/05/03 PM 02:35

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

using UnityEditor;


[CustomEditor(typeof(WorldMap3))]

public class MapEditor : Editor {


public override void OnInspectorGUI(){

base.OnInspectorGUI ();

WorldMap3 map = target as WorldMap3;

//map.CreateCube ();

if(GUILayout.Button("Generate")){

int seed = map.Seed;

map.RandomSeed (seed);

}

}

}

 

본문은 예시로 작성한 것이다.

에디터 상에서 굳이 플레이 상태로 진행하지 않고도 스크립트 상에서 이루어지는 오브젝트 생성, 제거, 수정등을 실시간으로 조절할 수 있다.

매 프레임마다 실행하므로, 가벼운 코드만 넣는편이 좋다.

 

구현하기 위해서는 몇가지 조건을 필요로한다.

1, Asset 내부에 Editor 폴더를 생성한다. 반드시 Editor 이름이어야한다.

2, Editor 폴더 내부에 스크립트를 생성하고, 최상단에 using UnityEditor를 넣는다.

3, 스크립트에 아래 구문들을 넣는다.

[CustomEditor(typeof(작동할 스크립트 명칭))]

public class MapEditor : Editor {

public override void OnInspectorGUI(){

작동할 스크립트 명칭 map = target as 작동할 스크립트 명칭;

}

}

4, 

3번의 map은 해당 스크립트에서 작동할 스크립트 명칭을 정하는것으로서 원하는 이름으로 작성한다.


신고

 
[작업] (0) 2018/05/03 AM 11:07

 

 

1,

void example(){

int[] p = new int[]{ 1, 2, 3, 4, 5, 6};


for (int i = 0; i < p.Length; i++) {

int rand = Random.Range (i, p.Length);

int temp = p [rand];

p [rand] = p [i];

p [i] = temp;


print (p [i]);

}

}

 

구문을 설명하기전에 먼저 작동원리부터 이해하는게 도움이 될 것이다.

지금까지 난수를 생성하기 위해서는 단순히 Random.Range(min, max)를 사용해 왔었다.

하지만 Random.Range는 난수를 생성하는 것 이상의 기능이 없어, 중복되지 않는 난수 또는 시드 값을 이용한 난수 생성은 구현할 수 없더라.

따라서 위의 구문은 배열 내 값을 순서를 섞어 중복되지 않게 출력하는 것인데, 지금이야 어느정도 이해를 하고서 이렇게 설명하고 있지만 나중에 이 글을 보았을때 여전히 기억하고 있으련지 걱정스러워 이렇게 글을 쓴다. 본격적으로 공부하는 것이 아니라 취미로 하고있다보니 어느순간 질리게 될게 분명한데, 그렇게되면 분명 이 내용도 까먹을것 같다.

 

예를 들어A, B, C, D 값을 갖는 배열이 있고 이 순서를 섞는다.

섞었더니 순서가 C, B, D, A가 나왔다면, 두번째로 섞을땐 배열의 첫번째 자리에 있는 C를 제외하고 섞는다.

따라서 B, D, A만을 가지고 순서를 섞게된다. 두번째에서 D, A, B가 나왔다면, 마찬가지로 첫번째 자리의 D를 제외하고 다시 순서를 섞는다.

세번째에서 A, B가 나왔다면 A를 제외하고 B를 가지고 순서를 섞어야하겠지만, 남은 배열값은 B 하나뿐이므로 그대로 B가 첫번째 자리에 있게된다.

처음부터 마지막까지 배열의 첫번째 자리에 뽑인 배열값을 나열하면 C, D, A, B가 된다.

즉, 섞는 횟수마다 배열의 첫째자리에 위치한 값을 제외하고서 배열을 나열하는 것으로, 중복된 값이 나오지 않게 만드는 것이다.

 

원리를 알고보니 지극히 단순하지만, 지금까지 몰랐으니 창피할 따름이더군.

위 구분은 설명을 코드로서 바꾼것 밖에 되지 않는다. 코드 자체는 단순하다. 원리를 아는게 중요하다.

 

 

2,

void RandGenerator(int seed){

int[] ar = new int[]{ 1, 2, 3, 4, 5, 6 };


System.Random Rand = new System.Random (seed);

for (int i = 0; i < ar.Length - 1; i++) {

int Index = Rand.Next (i, ar.Length);

int Temp = ar [Index];

ar [Index] = ar [i];

ar [i] = Temp;


print (ar [i]);

}

}

 

난수를 생성할때, 난수 생성의 기준이 되는 시드값을 주어 시드값에 따라 고정된 난수를 생성하게 한다.

즉, 시드값이 동일하다면 언제나 같은 난수 값을 생성한다.

 

전체적인 구문형태는 1번과 크게 다르지 않다.

하지만 System.Random이나 Rand(System.Random).Next 처럼 내가 처음으로 보는 코드가 있어 생소하게만 느껴진다.

먼저 구글링을 통해 이 두 코드를 찾아보았으나, 나오는것은 더욱더 날 어지럽게 만들었다. 설명이 또다른 의문을 만들더라.

주먹구구식으로 때려맞추고 이해하는식으로 2번을 구현하였다.

System.Random에 int형으로 시드값을 넘겨주어 난수를 생성하는 것으로 이해한다.

반복문을 통해 1번과 같이 배열은 순환하며 난수값을 생성하는데, Rand.Next에 반복문 i값을 주는 부분은 1번과 크게 다르지 않다.

1번처럼 순서를 바꾸면서 배열의 첫번째 자리의 값은 제외하는 식이다.

 

3,

public void RandomSeed(int seed){

Vector2[] Ar = new Vector2[FieldSize * FieldSize];

for (int i = 0; i < FieldSize; i++) {

for (int j = 0; j < FieldSize; j++) {

Ar [i + j * (int)FieldSize] = new Vector2 (i, j);

}

}


if (transform.childCount > 0) {

DestroyImmediate (transform.GetChild (0).gameObject);

}


GameObject Pocket = new GameObject ("Pocket");

Pocket.transform.parent = transform;


System.Random Rand = new System.Random (seed);

int ObstacleCount = (int)((FieldSize * FieldSize) * ObstacleRate);

for (int i = 0; i < ObstacleCount; i++) {

int Index = Rand.Next (i, Ar.Length);

Vector2 Temp = Ar [Index];

Ar [Index] = Ar [i];

Ar [i] = Temp;


GameObject Obj = Instantiate (Cube, new Vector3(Ar[i].x, 0, Ar[i].y), Quaternion.identity);

Obj.transform.localScale = new Vector3 (0.8f, 0.8f, 0.8f);

Obj.transform.parent = Pocket.transform;


}

}

 

3번은 2번을 응용하여 시드값에 의해 고정된 난수를 이용하여 큐브들을 생성하는 코드이다.

 

신고

 
1 2 3 현재페이지4 5 다음
X