2D Curve Editor 샘플 코드
예전에 참고한 2D Curve의 샘플 코드를 작성했다.
2D로 베지어 곡선을 이용해서 포인트 포인트를 처리했고
Edit의 형태로 나중에도 많이 사용이 가능할 거라는 생각이 들어서 작업했다.
간략하게 설명하면 Event를 받아서 Shift 버튼과 마우스 클릭을 하게 되면 (Button이 아닌 경우) 해당 path에 Segment를 한 개 추가한다. Undo.RecordObject는 해당 데이터를 Undo를 할 수 있도록 처리하는 기능이다.
void Input(){
Event guiEvent = Event.current;
Vector2 mousePos = HandleUtility.GUIPointToWorldRay(guiEvent.mousePosition).origin;
if(guiEvent.type == EventType.MouseDown && guiEvent.button == 0 && guiEvent.shift){
Undo.RecordObject(creator, "Add segment");
path.AddSegment(mousePos);
}
}
UndoRecordObject : https://docs.unity3d.com/ScriptReference/Undo.RecordObject.html
에디터에서 플레이 영상은 다음과 같다.
모든 코드를 이해하진 못했지만 많이 참고해서 작업했다.
에디터를 만들어서 하는 많은 기능에 확장성 있게 사용이 가능하다.
★★★☆☆
반응형
'개발 > Unity' 카테고리의 다른 글
Unity) 이미지 픽셀 (Image Pixel) 구분하기 (4) | 2020.08.10 |
---|---|
Unity) Device Simulator(v2019) (0) | 2020.08.03 |
Unity)로컬 이어하기 작업(Save & Load - BinaryFoatter) (2) | 2020.07.29 |
Unity)해결) Request error (error) : UnityEditor.AsyncHTTPClient:Done(State, Int32) (6) | 2020.07.28 |
Unity) 프로젝트가 확장될 때 코드 설계 방법 (8) | 2020.07.15 |
댓글