Live 2D에서 그려진 캐릭터를 드래그(스쳐)하면 입자가 나옵니다.
개요
캐릭터에 라이브 2D SDK를 넣은 Sample App1을 드래그해보면 파티가 나온다.
Live2D_SDK_Unity_2.0.08_1_jp/sample/SAmple App1을 개조 및 제작합니다.
※ 아래 설명은 드래그와 스치기를 스치기로 통일
개발 환경
완성된 DEMO
방법
PlatformManager.cs 및 LAppView.cs 편집,
모형의 그리기 모드를 바꾸고 스치기 등 처리를 하며 입자를 설정합니다.
모델의 드로잉 모드 변경하기
입자가 표시될 때 Live 2D 모델이 맨 앞에 나타나는 문제를 피하기 위해
렌더링 모드를 변경합니다.
sample/PlatformManager.cs
public ALive2DModel loadLive2DModel(string path){
// -- 省略 --
live2DModel.setRenderMode(Live2D.L2D_RENDER_DRAW_MESH); //追加
return live2DModel;
}
공정에 입자 추가
Partical System을 선택하여 입자 시스템을 생성합니다.
Inspector 설정은 다음과 같습니다.
LAppView 구성원에 다음 내용 추가
sample/LAppView.cs
ParticleSystem ps;
LAppView 빌더에 다음 추가sample/LAppView.cs
ps = GameObject.Find("Particle System").GetComponent<ParticleSystem> ();
스치기 이벤트와 입자 조작 수정
sample/LAppView.cs
// タッチ中
public void TouchesMoved(Vector3 inputPos)
{
// -- 省略 --
Camera c = GameObject.Find("Main Camera").GetComponent<Camera>();
dragMgr.Set(x, y);
const int FLICK_DISTANCE = 100;// この値以上フリックしたらイベント発生
// フリックイベントの判定
if (touchMgr.IsSingleTouch() && touchMgr.IsFlickAvailable())
{
ps.Play();
ps.transform.position = c.ScreenToWorldPoint(new Vector3(inputPos.x,inputPos.y, 0));
float flickDist = touchMgr.GetFlickDistance();
if (flickDist > FLICK_DISTANCE) {
float touchPos_plane2x2_X = touchPos_onPlane.x * 2 - 1;
float touchPos_plane2x2_Y = -touchPos_onPlane.y * 2 + 1;
model.FlickEvent(touchPos_plane2x2_X, touchPos_plane2x2_Y);
//touchMgr.DisableFlick(); //コメントアウト
}
}
// -- 省略 --
}
// タッチ終了
public void TouchesEnded(Vector3 inputPos)
{
// -- 省略 --
touchMgr.DisableFlick();
ps.Stop();
ps.Clear();
}
Reference
이 문제에 관하여(Live 2D에서 그려진 캐릭터를 드래그(스쳐)하면 입자가 나옵니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shima07/items/4a345f9918586e5e8293텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)