본문 바로가기

Unity/C# Script4

GameObject의 각속도 구하기 //Angular Velocity Quaternion previousRotation; //전 프레임의 로테이션 값 Vector3 angularVelocity; //각속도를 관리할 변수 //이 함수를 업데이트에서 굴려줍니다. public Vector3 GetPedestrianAngularVelocity() { Quaternion deltaRotation = transform.rotation * Quaternion.Inverse(previousRotation); previousRotation = transform.rotation; deltaRotation.ToAngleAxis(out var angle, out var axis); //각도에서 라디안으로 변환 angle *= Mathf.Deg2Rad; angu.. 2020. 8. 5.
유니티 C# Script에서 Null Conditional Operator C# 6.0 에서 Null 체크 연산자가 추가되었습니다. 최신 언어들에서 자주 볼 수 있는 이 연산자는 //예를 들자면 if(current == null) current = gameObject; current.Start(); //를 아래와 같이 연산 가능하도록 해줍니다. current?.Start(); IDE에서 삼항연산자나 널처리 문을 쓰면 가끔 저렇게 변환시켜주는데 유니티에서는 아직 제대로 지원이되지 않고 있습니다. 클래스나 변수의 값들을 상대로 사용할 때는 사용이 가능하지만 using UnityEngine.Object 즉, 게임오브젝트 상대로 사용하게 되면 Unssigned Reference Exception이 뜨게 됩니다. 이는 유니티에서 ?. 이나 ?? 연산자에 대한 오버로딩 처리를 안해서 그런.. 2020. 8. 4.
UnityEvent UnityEvent https://docs.unity3d.com/kr/530/ScriptReference/Events.UnityEvent.html Unity - 스크립팅 API: UnityEvent Success! Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable. 닫기 docs.unity3d.com 유니티 Documents에는 위와 같이 api를 제공하고 있습니다만... 사실 필자는 API문서를 봐도 .. 2020. 1. 17.
C#의 Static 보통 C언어의 메모리구조는 Stack과 Heap 그리고 Data 영역으로 나뉘어진다. 아시다시피 Stack(스택)은 프로그램이 실행에 관한 함수 호출과 지역변수 매개변수가 관리되는 곳이며 함수 호출이 완료되면 사라진다. 위와 같은 그림으로 관리 되어진다. Heap(힙)영역은 동적 할당을 위한 공간이다. 런타임동안 메모리를 할당하고 스택에서 참조할 수 있도록 해주는 메모리 공간! ex) Class class = new Class(); 를 하게 된다면 이 데이터에 대한 정보는 힙영역에 기록이 된다. 마지막 데이터영역인데 이 포스팅을 하게된 결정적인 이유이다. C언어나 다른 언어들은 대부분 static int num1 = 10; 이라고 하게 된다면 프로그램 실행과 동시에 데이터 영역에 초기화되는 것으로 알고 .. 2018. 5. 16.