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

카테고리

분류 전체보기 (2804)
Unity3D (860)
Script (91)
Extensions (16)
Effect (3)
NGUI (81)
UGUI (9)
Physics (2)
Shader (37)
Math (1)
Design Pattern (2)
Xml (1)
Tips (201)
Link (23)
World (1)
AssetBundle (25)
Mecanim (2)
Plugins (80)
Trouble Shooting (70)
Encrypt (7)
LightMap (4)
Shadow (4)
Editor (12)
Crash Report (3)
Utility (9)
UnityVS (2)
Facebook SDK (2)
iTween (3)
Font (13)
Ad (14)
Photon (2)
IAP (1)
Google (11)
URP (2)
Android (51)
iOS (45)
Programming (479)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (234)
협업 (61)
3DS Max (3)
Game (12)
Utility (140)
Etc (98)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (55)
Android (16)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (18)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday

1) NGUI의 Panel에 UIStretch 추가

    (조절이 필요한 곳에 모두 넣는다. 패널이 여러개면 여러 패널에 모두 순서대로 진행)


2) Ui Camera에 NGUI 카메라 추가(Drag & Drop)


3) Style : Both(카메라에 맞춰서 스케일이 조절돼버림. 스케일 수정 안됨)


4) 스케일이 직접 조절이 안되므로 Relative Size를 조절함


5) Relative Size 조절(결과적으로 패널의 스케일 값이 1이 나오게 Relative Size 값을 넣는다.)

   X = 패널의 1 / Scale.X

   Y = 패널의 1 / Scale.Y


[문제점]

- 해상도에 맞게 늘어나긴 하지만 UI 크기가 늘어나거나 줄어드는 문제가 있음.


[참조 글]

뀨니 2012.12.28 09:23:58 댓글달기
저도 같은문제로 게시판 뒤지다가 어떤분것 보고 도움을 받았는데요 NGUI쓰신다면 NGUI에 있는 스크립트를 사용하시면 됩니다.UIStretch스크립트를사용해서 해상도에따라 셋팅값에 따라 해상도에 맞춰 비율적으로 강제적으로 늘릴 수 있습니다. 예를 들자면UIStretch를 패널에 추가하시고, UI Camera에 NGUI카메라를 넣으시고, Style을 Both로 맞추시면 카메라에 맞춰 늘어나게 되는데요, 여기서 크기를 Relative Size로 셋팅해주시면 됩니다. 
저같은 경우는 엄청나게 커져버려서 X = 0.00085 Y = 0.00125 뭐이런식으로 맞췄 습니다.


참조글 링크 : http://devkorea.co.kr/bbs/board.php?bo_table=m03_qna&wr_id=23789&page=0&sca=UNITY&sfl=wr_subject%7C%7Cwr_content&stx=UIStretch&spt=0&page=0&currentId=44#c_23991

반응형
Posted by blueasa
, |

NGUI의 이벤트 함수를 SendMessage로 호출하려고 함수 원형을 찾아보고 올려놓음.


UICamera sends out the following events to colliders:
  • OnHover (isOver) is sent when the mouse hovers over a collider or moves away.
  • OnPress (isDown) is sent when a mouse button gets pressed on the collider.
  • OnSelect (selected) is sent when a mouse button is first pressed on a game object. Repeated presses on the same object won't result in a new OnSelect.
  • OnClick () is sent with the same conditions as OnSelect, with the added check to see if the mouse has not moved much. UICamera.currentTouchID tells you which button was clicked.
  • OnDoubleClick () is sent when the click happens twice within a fourth of a second. UICamera.currentTouchID tells you which button was clicked.
  • OnDragStart () is sent to a game object under the touch just before the OnDrag() notifications begin.
  • OnDrag (delta) is sent to an object that's being dragged.
  • OnDragOver (draggedObject) is sent to a game object when another object is dragged over its area.
  • OnDragOut (draggedObject) is sent to a game object when another object is dragged out of its area.
  • OnDragEnd () is sent to a dragged object when the drag event finishes.
  • OnInput (text) is sent when typing (after selecting a collider by clicking on it).
  • OnTooltip (show) is sent when the mouse hovers over a collider for some time without moving.
  • OnScroll (float delta) is sent out when the mouse scroll wheel is moved.
  • OnKey (KeyCode key) is sent when keyboard or controller input is used.

To tap into them in your own custom scripts, simply create a script with the appropriate function, such as:
  1. void OnPress (bool isPressed)
  2. {
  3.     if (isPressed) Debug.Log("I was pressed on!");
  4.     else Debug.Log("I was unpressed");
  5. }

Pro-Tip #2

You can subscribe to events from any script using delegates: UICamera.onClick, UICamera.onHover, etc. These delegates will be called just before the actual notification gets sent to the proper object. You can use this functionality to listen in for events on a script regardless of whether they would be going to that script's game object or not.

Class Documentation

http://tasharen.com/ngui/docs/class_u_i_camera.html

If you have a question regarding this component or would like me to clarify something, just post a reply here.



출처 : http://www.tasharen.com/forum/index.php?topic=6711.0

반응형
Posted by blueasa
, |

NGUI Virtual Joystick

Unity3D/NGUI / 2012. 12. 5. 15:23


nguijoystick.unitypackage



NGUI에서 제공하는(맞나? 홈페이지에서 찾아도 못찾겠는데..) 조이스틱이 있어서 구해서 올려놓음..


버전이 달라져서 그런지 좀 바꿔야 될 부분이 있다..


1. 우선 Import 하고나면 UIJoystick.cs가 별도의 Plugin 폴더에 빠져 있다.

    이걸 NGUI-Scripts-UI 폴더로 옮겨주자.


2. UIJoystick.cs 스크립트에도 에러가 4개 난다.

    파일을 열어서 아래 두가지를 수정해주자.

    1) Tweener -> UITweener

    2) UICamera.lastCamera -> UICamera.currentCamera


3. 예제의 조이스틱 컨트롤은 Layer가 Default가 아니라서 Culling Mask 때문에 조이스틱이 제대로 작동 안할 수 도 있다.

    다른 Layer로 바꾸던지 Default로 바꾸자.(이것때문에 조작 안된다고 삽질을..)


위 까지만 수정하면 우선 돌아간다.


참조 : http://www.tasharen.com/forum/index.php?topic=55.0

반응형
Posted by blueasa
, |

스크롤/드래그 이벤트를 받는 방법

  • NGUI에서는 BoxCollider를 붙인 오브젝트만  UICamera의 마우스 이벤트를 받는다
    • BoxCollider 뿐만 아니라  Collider면 다 될 것 같긴 하지만 확인해보진 않았다
  • 따라서 BoxCollider와 UIDragPanelContents를 붙인 오브젝트에 UIForwardEvents 스크립트를 붙인다
  • UIForwardEvents의 OnDrag를 true로 설정하고, UIForwardEvents의 target을 UIDragPanelContents 오브젝트로 지정한다
  • UIDragPanelContents 오브젝트에 UIEventListener 스크립트를 붙이고 이벤트를 받거나, 직접 OnDrag() 를 구현한다
  • OnScroll은 위 과정을 참고하여 알아서 구현한다




반응형

'Unity3D > NGUI' 카테고리의 다른 글

NGUI: Events(Event Functions)  (2) 2012.12.07
NGUI Virtual Joystick  (1) 2012.12.05
유니티 NGUI 에서 라벨에 한글(폰트) 적용하기  (2) 2012.11.05
NGUI - Sticky Floating Text  (0) 2012.10.28
NGUI: HUD Text  (0) 2012.10.26
Posted by blueasa
, |

유니티 NGUI 에서 라벨에 한글 적용하기(1)


유니티 NGUI 에서 라벨에 한글 적용하기(2)


반응형

'Unity3D > NGUI' 카테고리의 다른 글

NGUI Virtual Joystick  (1) 2012.12.05
스크롤/드래그 이벤트를 받는 방법  (0) 2012.11.13
NGUI - Sticky Floating Text  (0) 2012.10.28
NGUI: HUD Text  (0) 2012.10.26
NGUI와 NGUI: HUD Text 패키지 임포트 시 에러 문제..  (0) 2012.10.25
Posted by blueasa
, |
반응형
Posted by blueasa
, |

NGUI: HUD Text

Unity3D/NGUI / 2012. 10. 26. 13:03


간단한 사용법 동영상..


※ HUD (Heads-Up Display) 1
    머리 높이 표시판, (전투기에서) 조종사석의 앞유리에 비행과 전투 정보들을 표시하여 바깥 실제 환경도 함께 볼 수 있도록 한 판


반응형
Posted by blueasa
, |

NGUI: HUD Text 버전 : 1.3

새로 받은 NGUI 버전 2.2.3


NGUI는 이미 프로젝트에서 쓰고 있는 상태에서 HUD Text를 쓰기 위해 에셋 스토어에서 구입을 하고, 임포트 시켰더니


클래스 간 충돌(동일한 클래스가 2개이상 있어서 모호하다고 함) 에러가 났다.


아래는 같은 경험을 한 분의 글이다.

링크 : http://smilejsu.tistory.com/397


그래서 NGUI: HUD Text의 ReadMe.txt 파일을 열어보니 아래와 같은 임포팅 방법이 써있었다.

----------------------------------------------

Importing the full (or free) version of NGUI

----------------------------------------------

The steps are the same as upgrading NGUI:


1. Start a new scene.

2. Delete the NGUI folder.

3. Import the new NGUI package.

----------------------------------------------


설명대로 따라 해봤다.

1. 씬하나 만들고,

2. HUD 임포트 하고,

3. NGUI(산 거)를 삭제했다.

4. NGUI 새 버전을 새로 받아서 임포트 했다.

5. 에러 -_-


그래서 이리저리 구글링을 해보니 같은 문제로 난리 치는 사람들이 참 많았다.

참조 링크 : http://www.tasharen.com/forum/index.php?topic=1013.0


근데 위 링크에서도 제작자는 readme에 있는 설명밖에 안하고 있었다.


그래서 새로 프로젝트를 생성해서 HUD만 넣고 실행해보니 잘되는걸 봤는데..


HUD만 있을 때 NGUI의 워터마크가 화면에 나왔다. 프리버전인가보다..


난 상용 NGUI를 써야되는데.. 라고 생각해보니 저 프리버전이 없어져야 되겠다고 생각..


그렇게 생각하고 readme에 있는 임포팅 방법을 보니 테스트 해봐야 될 게 생각났다.

----------------------------------------------

1. Start a new scene.

2. Delete the NGUI folder. <- 이 NGUI가 HUD Text-NGUI 를 가리키는 것 같아서 테스트..

3. Import the new NGUI package.

----------------------------------------------



1. 씬하나 만들고,

2. NGUI 넣고

2. HUD 임포트 하고,(충돌 에러)

3. HUD Text 하위 NGUI 삭제(또다른 에러)

4. NGUI 새 버전을 그대로(덮어서) 임포트

5. 잘된다!!!!



결론 : 서양인이라 그런지..지극히 주관적인 생각으로 메뉴얼을 쓰는 건가.. 라는 생각을 했다. 제작자는 NGUI를 지우라고 하면 자신의 HUD 아래 NGUI를 생각하면서 쓴걸까.. 타인이 보면 그냥 원 프로젝트인 NGUI로 착각하는데..나처럼..

반응형

'Unity3D > NGUI' 카테고리의 다른 글

NGUI - Sticky Floating Text  (0) 2012.10.28
NGUI: HUD Text  (0) 2012.10.26
NGUI health bar, vital bar  (0) 2012.10.25
Button Cooldown effect  (0) 2012.10.16
NGUI 링크 모음  (0) 2012.10.16
Posted by blueasa
, |

http://www.youtube.com/watch?v=h0x5196mWlk


using UnityEngine;

using System.Collections;


public class VitalBar : MonoBehaviour {

private UISlider _slider;

private float _maxWidth;

public float health = 1f;

void Awake() {

_slider = GetComponent<UISlider>();

if(_slider==null)

{

Debug.LogError("Could not find the UISlider Component!");

return;

}

_maxWidth = _slider.foreground.localScale.x;

Debug.Log(_maxWidth);

}

void Update(){

UpdateDisplay(health);

}

public void UpdateDisplay(float x){

_slider.foreground.localScale = new Vector3(_maxWidth*x,_slider.foreground.localScale.y, _slider.foreground.localScale.z);

}

}




출처 : http://smilejsu.tistory.com/394

반응형

'Unity3D > NGUI' 카테고리의 다른 글

NGUI - Sticky Floating Text  (0) 2012.10.28
NGUI: HUD Text  (0) 2012.10.26
NGUI와 NGUI: HUD Text 패키지 임포트 시 에러 문제..  (0) 2012.10.25
Button Cooldown effect  (0) 2012.10.16
NGUI 링크 모음  (0) 2012.10.16
Posted by blueasa
, |

Button Cooldown effect

Unity3D/NGUI / 2012. 10. 16. 22:20

It's really simple. Create one UISprite. Give it a grey tint. Now create a UIFilledSpriteusing the same sprite texture, right on top of the original. Set it to radial 360. That's it, really. Drag the filled sprite's slider to see it change.



참조 : http://www.tasharen.com/forum/index.php?topic=539.msg2724#msg2724


출처 : http://www.tasharen.com/forum/index.php?topic=1205.msg6124#msg6124

반응형

'Unity3D > NGUI' 카테고리의 다른 글

NGUI - Sticky Floating Text  (0) 2012.10.28
NGUI: HUD Text  (0) 2012.10.26
NGUI와 NGUI: HUD Text 패키지 임포트 시 에러 문제..  (0) 2012.10.25
NGUI health bar, vital bar  (0) 2012.10.25
NGUI 링크 모음  (0) 2012.10.16
Posted by blueasa
, |