목록프로그래밍/유니티 (22)
게임 프로그래밍
1 2 3 4 5 6 void OnSceneGUI() { var mousePosition = Event.current.mousePosition * EditorGUIUtility.pixelsPerPoint; mousePosition.y = Camera.current.pixelHeight - mousePosition.y; Ray ray = Camera.current.ScreenPointToRay(mousePosition); } Colored by Color Scripter cs mousePosition에 EditorGUIUtility.pixelsPerPoint를 곱해주면 된다. 이를 잘 몰라서 조금 고생했다.
Vector3 dir = new Vector3(15f,37f); Mathf.Rad2Deg * (Mathf.Atan2(dir.normalized.y, dir.normalized.x))
IDragHandler 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; [RequireComponent(typeof(Image))] public class DragMe : MonoBehaviour, IBeginD..

유니티 애니메이터 기능중에는 Animator Overrid 기능이 있습니다. 하나의 Animator를 기반으로 하여 안에 들어간 Animation Clip를 다르게 사용할때 사용하면 유용한 기능입니다. 이렇게 애니메이터안에 변수, 로직, 상황은 똑같지만 이미지가 달라 클립은 달라져야 하는 경우가 있습니다. override기능이 없다면 하나씩 Animator를 만들어줘야 할 것입니다. 그렇다면 어떻게 만들수 있을까요? 이렇게 만든후 Controller 안에 Base가 될 애니메이터를 넣어주고 밑에 클립을 상황에 맞게 넣어주면 됩니다.
json파일이란? JSON (JavaScript Object Notation) JavaScript Object Notation라는 의미의 축약어로 데이터를 저장하거나 전송할 때 많이 사용되는 경량의 DATA 교환 형식 Javascript에서 객체를 만들 때 사용하는 표현식을 의미한다. JSON 표현식은 사람과 기계 모두 이해하기 쉬우며 용량이 작아서, 최근에는 JSON이 XML을 대체해서 데이터 전송 등에 많이 사용한다. JSON은 데이터 포맷일 뿐이며 어떠한 통신 방법도, 프로그래밍 문법도 아닌 단순히 데이터를 표시하는 표현 방법일 뿐이다. JSON 특징 서버와 클라이언트 간의 교류에서 일반적으로 많이 사용된다. 자바스크립트 객체 표기법과 아주 유사하다. 자바스크립트를 이용하여 JSON 형식의 문서를 ..

1 2 3 4 5 public void SetTimeScale(float time) { Time.timeScale = time; Time.fixedDeltaTime = 0.02f * time; } Colored by Color Scripter cs 유니티에서 간단하게 슬로우모션을 할수 있게 만들수 있다. FixedUpdate같은경우에는 1초에 50번씩 고정으로 호출되기 때문에 Time.fixedDeltaTime에 1/50 = 0.02를 곱해주면 더 자연스럽게 된다. 참고로 슬로우모션에 영향을 받고 싶지 않다면 Time 객체중에서 Unscaledtime이라는 것을 쓰면 된다. 코루틴 안에서도 슬로우모션에 영향을 받고 싶지 않다면 RealTime이라는 것이 있을것이다. 그외에도 파티클이나 애니메이션 옵션중에..
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 private void setTrajectoryPoints(Vector3 pStartPosition, Vector3 pVelocity) // 시작 위치, addForce에 들어는 { float velocity = Mathf.Sqrt((pVelocity.x * pVelocity.x) + (pVelocity.y * pVelocity.y)); // 속도 구하기 float angle = Mathf.Rad2Deg * (Mathf.Atan2(pVelocity.y, pVelocity.x)); // 각도 구하기 float fTime = 0; int tragectoryNum = 10; // 궤도 개수 fTime += 0.1f; for (in..
유니티에서 GetComponent를 이용하면 Object에 들어있는 Component를 넣을 수 있다. 데코레이터 패턴을 쓰면서 IGun이라는 동일한 애들이 여러개 붙어 있으면 어떻게 될지 궁금해서 확인을 해봤다. 1. GetComponent를 하면 인스펙터상에서 가장 위에 있는 스크립트가 불러와진다. 2. GetComponents를 하면 위에서 부터 차례되로 불러와진다. 사실 너무 당연한 결과이긴하다. 그래도 이런 상황이 있을때 한번 확인해야하는 작업이긴 한것같다.