その効果を得ることができます。あなたのキャラクターに2番目のカメラを親にして、それをあなたのキャラクターと一緒に動かしてみましょう。
RenderTexture
をSprite
に変換することは可能です。まず、RenderTexture
to Texture2D
を変換してTexture2D
をSprite
に変換し、Sprite.Create
機能を使用します。
第2カメラまたはミラーカメラを無効にしてから、mirrorCam.Render()
を使用して手動でレンダリングしてください。以下のスクリプトはあなたを始めさせるはずです。それを空のGameObjectにアタッチし、ミラーカメラとターゲットをSpriteRenderer
にエディタから割り当て、カメラが見ているものをSpriteRenderer
に反映させる必要があります。 RenderTexture
をミラーカメラに差し込むことを忘れないでください。
public class CameraToSpriteMirror: MonoBehaviour
{
public SpriteRenderer spriteToUpdate;
public Camera mirrorCam;
void Start()
{
StartCoroutine(waitForCam());
}
WaitForEndOfFrame endOfFrame = new WaitForEndOfFrame();
IEnumerator waitForCam()
{
//Will run forever in this while loop
while (true)
{
//Wait for end of frame
yield return endOfFrame;
//Get camera render texture
RenderTexture rendText = RenderTexture.active;
RenderTexture.active = mirrorCam.targetTexture;
//Render that camera
mirrorCam.Render();
//Convert to Texture2D
Texture2D text = renderTextureToTexture2D(mirrorCam.targetTexture);
RenderTexture.active = rendText;
//Convert to Sprite
Sprite sprite = texture2DToSprite(text);
//Apply to SpriteRenderer
spriteToUpdate.sprite = sprite;
}
}
Texture2D renderTextureToTexture2D(RenderTexture rTex)
{
Texture2D tex = new Texture2D(rTex.width, rTex.height, TextureFormat.RGB24, false);
tex.ReadPixels(new Rect(0, 0, rTex.width, rTex.height), 0, 0);
tex.Apply();
return tex;
}
Sprite texture2DToSprite(Texture2D text2D)
{
Sprite sprite = Sprite.Create(text2D, new Rect(0, 0, text2D.width, text2D.height), Vector2.zero);
return sprite;
}
}
あなたは*ことが可能です*「スプライトにRenderTextureを変換することはできません」とあなたは正しい軌道に乗っているhttps://gamedev.stackexchange.com/ – neuhaus
でこの質問をする必要があります。そのコードを掲示し、あなたがどこにいるのか教えてください。 – Programmer
@Programmer私は現在、コードを持っていません。私はミラーがミニマップのように動作するはずだと思ったので、このチュートリアルに従うことにしました:www.youtube.com/watch?v=3-CN2DXqJjM&t – FlorisdG