Unity3D, 2D, Page Curl Effect, Page Flip Effect, UI, Canvas, 페이지 넘김 효과, 페이지 넘기기
page-curl effect with 2d mask tweak.
유니티 UI의 Mask기능을 이용한 간단한 페이지 넘기기 예제입니다.
소스코드입니다. 의외로 간단하게 구현되버려서 깜짝 놀랐습니다만,
경계선 테스트등이 빠져있습니다.(일정영역을 벗어나면 오작동을 합니다.)
<CurlEf.cs>
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 | using UnityEngine; using System.Collections; [ExecuteInEditMode] public class CurlEf : MonoBehaviour { public Transform _Front; public Transform _Mask; public Transform _GradOutter; public Vector3 _Pos = new Vector3(-240.0f, -470.0f, 0.0f) * 0.01f; void LateUpdate() { transform.position = _Pos; transform.eulerAngles = Vector3.zero; Vector3 pos = _Front.localPosition; float theta = Mathf.Atan2(pos.y, pos.x) * 180.0f / Mathf.PI; if (theta <= 0.0f || theta >= 90.0f) return; float deg = -(90.0f - theta) * 2.0f; _Front.eulerAngles = new Vector3(0.0f, 0.0f, deg); _Mask.position = (transform.position + _Front.position) * 0.5f; _Mask.eulerAngles = new Vector3(0.0f, 0.0f, deg*0.5f); _GradOutter.position = _Mask.position; _GradOutter.eulerAngles = new Vector3(0.0f, 0.0f, deg * 0.5f + 90.0f); transform.position = _Pos; transform.eulerAngles = Vector3.zero; } } | cs |
동작은 Front의 position만 조정하면 됩니다.( For testing, you should control a point of 'Front'.)
DOWNLOAD Unity3D v5.2.2 Project file (프로젝트 파일을 첨부합니다.)