'Unity/Notes'에 해당되는 글 3건

  1. 2015.09.02 삽질 로그
  2. 2015.07.22 C# Notes
  3. 2015.07.21 Notes
Unity/Notes2015. 9. 2. 22:02

* 터치가 UI오브젝트 위에 있는지 검사

 EventSystem.current.IsPointerOverGameObject()를 사용하면 PC의 마우스 입력으로는 잘 검사되는데, Android에서 실행하니까 false를 내뱉으며 동작하지 않았다.

 => 구글링: http://forum.unity3d.com/threads/ispointerovereventsystemobject-always-returns-false-on-mobile.265372/

> mwk888이란 사람이 포스팅한 코드중 발췌

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
bool IsPointerOverUIObject()
{
    // Referencing this code for GraphicRaycaster 
    // https://gist.github.com/stramit/ead7ca1f432f3c0f181f
    // the ray cast appears to require only eventData.position.
    PointerEventData eventDataCurrentPosition 
        = new PointerEventData(EventSystem.current);
    eventDataCurrentPosition.position 
        = new Vector2(Input.mousePosition.x, Input.mousePosition.y);
 
    List<RaycastResult> results = new List<RaycastResult>();
    EventSystem.current.RaycastAll(eventDataCurrentPosition, results);
    return results.Count > 0;
}
cs


* Animator CrossFade vs. CrossFadeInFixedTime

 CrossFade는 상태(state)가 천이(transition)하는 도중에는 적용되지 않는다. 상태 천이 도중 강제로 다른 상태로 전환하고자 할 때 CrossFadeInFixedTime을 사용한다. (Unity3D 5.1부터 적용)

  => CrossFade( "state", duration, -1, 0.0f )를 사용해도 된다.


* Serializing Enumeration :  당연하게 숫자로 저장된다!!. 


* GameObject::OnMouseDown 순서: 카메라 거리가 가장 가까운 오브젝트가 검출

  => 2D에서는(ortho-camera) 오브젝트의 z값으로 순서를 정할수 있다.







Posted by GNUPart
Unity/Notes2015. 7. 22. 04:46

* C/C++과 구조체 비교 (마샬링, System.Runtime.InteropServices)


C/C++

  1. struct A   
  2. {   
  3.    int dBuffer[16];   
  4. }; 


C#

  1. struct A   
  2. {   
  3.    [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16)]
  4.    int[] dBuffer;
  5. }; 



* 인터페이스 적용 여부 테스트

IBlah myTest = originalObject as IBlah

if (myTest != null)


if (object is IBlah)


if( typeof(IMyInterface).IsAssignableFrom(someOtherType) ) { }


*



Posted by GNUPart
Unity/Notes2015. 7. 21. 23:53


* Asset Store에서 다운받은 파일 경로

C:\Users\accountName\AppData\Roaming\Unity\Asset Store


* GameObject instantiate : Instantiate( ) -> GameObject:Awake() 


* Editor: Scene창에 글자출력

1
2
3
4
5
6
7
public void OnSceneGUI()
{
    GUIStyle style = new GUIStyle();
    style.normal.textColor = Color.red;
    Handles.Label(Vector3.zero, "Test Label", style);
}
cs


- Rich Text로 출력

1
2
3
4
5
6
public void OnSceneGUI()
{
    GUIStyle style = new GUIStyle();
    style.richText = true;
    GUILayout.Label("<size=30>Some <color=yellow>RICH</color> text</size>", style);
}

cs


* Monobehaviour::Awake() - active 되어야 호출된다. ( SetActive(true)에서 활성화후 호출할 수 있다.)


* Sprite vs. Mesh : 기본 Sprite Editor가 있어 추가 리소스 편집이 편하다.

Posted by GNUPart