블로그 이미지
Every unexpected event is a path to learning for you.

카테고리

분류 전체보기 (2328)N
Unity3D (572)N
Programming (472)
Unreal (4)
Gamebryo (56)
Tip & Tech (185)
협업 (34)
3DS Max (3)
Game (12)
Utility (116)
Etc (92)
Link (31)
Portfolio (19)
Subject (90)
iOS,OSX (38)
Android (13)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (1)
Memories (19)
Interest (37)
Thinking (36)
한글 (26)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (19)
Exercise (3)
나만의 맛집 (2)
냥이 (9)
육아 (9)
Total1,346,280
Today86
Yesterday132
Statistics Graph

달력

« » 2019.12
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

공지사항

태그목록

[스크립트 파일]

UISafeAreaOffsetController.cs
0.00MB

 

아래 위치와 같이 Anchor의 하위에 GameObject를 하나 만들고,

인스펙터와 같이 Top/Bottom에 따라 만들어진 GameObeject를 Drag&Drop 해서 Link 한다.

 

 

위와 같이 셋팅해 주면 Fan이 Top쪽 Safe Area가 있으면 그에 맞게 좀 더 내려온다

(Bottom은 같은 형태로 List Offset List_Bottom에 Link 해주면 된다.)

 

대충 만들어서 넣어놔서 정리좀 하고 싶지만 다음 기회로..

필요하신 분은 받아서 써보시고 개량해서 공유 좀 해주세요~

 

 

[참조] https://blueasa.tistory.com/2272

Posted by blueasa

댓글을 달아 주세요

[링크]

https://carrotclub.tistory.com/entry/NGUI-%EC%82%AC%EC%9A%A9-%ED%9D%90%EB%A5%B4%EB%8A%94-%EB%AC%B8%EC%9E%90%EC%97%B4-%EB%A7%8C%EB%93%A4%EA%B8%B0

 

NGUI 사용 흐르는 문자열 만들기

가. 흐르는 문자열 만들기 - 사용 조건 : NGUI가 있어야 함. 나. 코드 - NGUI UILabel.cs 파일내에 있는 overflow enum 값에 FlowText 라는 값을 추가해준다. 해당 옵션이 되어져 있을 경우 글자가 흐르게 할 예정..

carrotclub.tistory.com

 

Posted by blueasa
TAG NGUI, UILabel

댓글을 달아 주세요

NGUI에서 초당 터치 횟수 제한을 하려는데 설정 옵션이 없어서

유니티에 있는 StandaloneInputModule.cs 스크립트의 m_InputActionsPerSecond 소스를 보고 그대로 추가함.

 

private float m_fNextAction = 0f;
private float m_fInputActionsPerSecond = 6f; // 초당 최대 액션 횟수

void ComputeNextAction()
{
    m_fNextAction = Time.unscaledTime + (1f / m_fInputActionsPerSecond);
}

void OnEventClick()
{
    DoSomeAction();
}

public void OnUIEventClick()
{
    if (m_fNextAction != 0f && Time.unscaledTime < m_fNextAction)
    {
        Debug.Log("[Skip Click Event] Max Action Per Second");
        return;
    }

    OnEventClick();
    ComputeNextAction();
}

 

[참조]

https://github.com/tenpn/unity3d-ui/blob/master/UnityEngine.UI/EventSystem/InputModules/StandaloneInputModule.cs

 

tenpn/unity3d-ui

Mirror of https://bitbucket.org/Unity-Technologies/ui/ for ease of code search - tenpn/unity3d-ui

github.com

 

Posted by blueasa

댓글을 달아 주세요

[링크]

https://ronniej.sfuh.tk/ui-%EA%B8%B0%EB%B3%B8%EA%B5%AC%EC%A1%B0%EC%99%80-%EC%A3%BC%EC%9A%94-%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8/

 

1.3 UI 기본구조와 주요 컴포넌트 - Ronnie's Development Story

UI 기본구조와 주요 컴포넌트   1.3 UI 기본구조와 주요 컴포넌트 NGUI 메뉴를 이용해서 2D UI를 생성하면 몇몇 게임오브젝트가 생성이 됩니다. 이 중에서 NGUI의 핵심적인 기능을 담당하는 두 개의 컴포넌트에 대해서 알아보겠습니다.   UIRoot UIRoot...

ronniej.sfuh.tk

 

Posted by blueasa

댓글을 달아 주세요


Unlit - Transparent Colored GrayScale.zip




NGUI의 ScrollView 안에 있는 오브젝트의 UITexture에 GrayScale을 적용하려고 아래 [참고]의 쉐이더를 썼는데


제대로 안되길래 보니 Clipping 개수에 따른 추가 쉐이더가 없어서 겸사겸사 만들어서 올려 놓음.



[참고] http://blueasa.tistory.com/1807

Posted by blueasa

댓글을 달아 주세요

Show emojis in NGUI's UILabel with dynamic font


EmojiLabel.z01

EmojiLabel.zip




[출처] https://github.com/OYYMING/EmojiLabel

Posted by blueasa

댓글을 달아 주세요

Useful stuff for NGUI

Unity3D/NGUI / 2018. 6. 7. 16:22

I've decided to create a sticky where I can bookmark topics that others may find useful. I'll keep adding stuff here (and you're welcome to reply to suggest other additions).



[출처] http://www.tasharen.com/forum/index.php?topic=776.msg34546#msg34546http://www.tasharen.com/forum/index.php?topic=776.msg34546#msg34546

Posted by blueasa
TAG NGUI

댓글을 달아 주세요

초맨  2013.05.29 16:40  
자답입니다. 

NGUI 소스를 분석해 보니 직접적으로 이벤트를 발생시켜주지는 않는군요., 
대신 UIDraggablePanel 에서 드래그를 완료했을때 발생시켜 주는 이벤트(델리게이트로 구현)를 받아 
좌표 계산 후 상단끝에 도달했는지 하단끝에 도달했는지 판단할 수 있습니다. 

1. 델리게이트 등록 
dragPanel.onDragFinished = new UIDraggablePanel.OnDragFinished(OnDragFinished); 

2. 드래그완료 이벤트에서 좌표계산 후 영역판단. 
void OnDragFinished() 

Vector3 constraint = dragPanel.panel.CalculateConstrainOffset(dragPanel.bounds.min, dragPanel.bounds.max); 
if (constraint.y > 0) 

// 상단끝 

else if (constraint.y < 0) 

// 하단끝 

}




[출처] http://www.devkorea.co.kr/bbs/board.php?bo_table=m03_qna&wr_id=30574

Posted by blueasa

댓글을 달아 주세요

GUI 최적화의 핵심은 정적인 UI 들과 동적인 UI 들을 나누는 것이다. 나누는 기준은 패널이다. 예를 들어 다음과 같은 하이어라키를 생각해볼 수 있다.




Panel1

정적인 UI들


Panel2

동적인 UI들




이렇게 하는 이유는 UI 가 갱신될 때마다 UI 가 속한 패널의 지오매트리가 재구성되기 때문이다. 재구성 작업에 많은 양의 가비지가 발생한다. 여기서 주의해야할 점은 위치 이동같은 기본 변환은 '갱신' 에 포함되지 않는다는 것이다. 지오매트리가 변해야 하는 작업들, 예를 들어 SetActive, UILabel 의 text 변경 등이 갱신에 포함된다.




패널의 UI 들중 하나라도 갱신이 되면 패널의 모든 UI 들에 대한 지오매트리 재구성 작업이 수행된다. 따라서 제일 최악의 시나리오는 패널을 루트에 단 하나 만들어두는 것이다. 이러면 UI 의 변경은 곧 씬의 모든 UI 들의 갱신이라는 결과로 작용한다.




동적인 UI 들 역시 하나의 패널로 몰아넣는건 같은 이유로 피해야 한다. 그렇다고 해서 패널의 개수를 너무 많이 늘려서는 안되는데, 패널 단위로 드로우콜이 분리되기 때문에 렌더링 성능은 낮아진다. 따라서 성능 측정을 결과로 패널의 개수를 조절할 필요가 있다.




출처: http://cacodemon.tistory.com/entry/NGUI-최적화의-핵심 [카코데몬의 잡동사니]

Posted by blueasa

댓글을 달아 주세요

I Just Modified UI Label Code 

From
   public string text
   {
      get
      {
         return mText;
      }
      set
      {
         if (string.IsNullOrEmpty(value))
         {
            if (!string.IsNullOrEmpty(mText))
               mText = "";
            hasChanged = true;
         }
         else if (mText != value)
         {
            mText = value;   <=== Here
            hasChanged = true;
         }
      }
   }


To
   public string text
   {
      get
      {
         return mText;
      }
      set
      {
         if (string.IsNullOrEmpty(value))
         {
            if (!string.IsNullOrEmpty(mText))
               mText = "";
            hasChanged = true;
         }
         else if (mText != value)
         {
            mText = value.Replace("\\n", "\n");  <== Here
            hasChanged = true;
         }
      }
   }


I Didn't consider performance :)




[출처] http://www.tasharen.com/forum/index.php?topic=4114.msg20026#msg20026

[참조] http://www.devkorea.co.kr/bbs/board.php?bo_table=m03_qna&wr_id=31752

Posted by blueasa
TAG NGUI, \n, 개행

댓글을 달아 주세요