メインカメラ(Persepective)からのオブジェクトへのRayによる当たり判定 をRenderTextureを描画しているSubCamera(Orthographic)のRay へと変換するものです
publicrayTransformRay(Rayray,GameObjectTargetScreen){PlaneQuadPlane=newPlane(-TargetScreen.transform.forward,TargetScreen.transform.position);floatenter=0;TargetPlane.Raycast(ray,outenter);Vector3HitPoint=ray.GetPoint(enter);Vector3shift=transform.position-TargetScreen.transform.position;floatscale=transform.lossyScale.magnitude/TargetScreen.lossyScale.magnitude;Hitpoint=(HitPoint-shift)*scale;returnnewRay(HitPoint,transform.forward);}
・なんの意味があるのか?
主にLive2Dを描画するために使います。Live2DはOrthographicのカメラにしか写りません。
そこでPersepectiveのカメラに写したい場合は一度Live2DモデルをRenderTextureに描画して、それをマテリアルにして3D空間のオブジェクトに反映させます。
ですがこの方法だと基準点が違うため当たり判定用のRayの変換が必要になります。そのためのスクリプトです。
RenderTextureに描画してPersepectiveカメラに写すことでズーム、スクロール、半透明化が可能になります