Câmera Não esta renderizando na segunda janela.
Página 1 de 1
Câmera Não esta renderizando na segunda janela.
Estou tentando fazer com que a imagem da segunda câmera seja renderizada em uma janela a parte mais sem sucesso.
Alguém sabe o que estou fazendo de errado?
Alguém sabe o que estou fazendo de errado?
- Código:
using UnityEngine;
using System;
using System.Runtime.InteropServices;
public class DualScreen : MonoBehaviour
{
[DllImport("user32.dll", EntryPoint = "CreateWindowEx")]
public static extern IntPtr CreateWindowEx(int dwExStyle, string lpClassName, string lpWindowName,
int dwStyle, int x, int y, int nWidth, int nHeight,
IntPtr hWndParent, IntPtr hMenu, IntPtr hInstance, IntPtr lpParam);
[DllImport("user32.dll")]
static extern IntPtr GetActiveWindow();
[DllImport("user32.dll", EntryPoint = "DestroyWindow")]
public static extern bool DestroyWindow(IntPtr hWnd);
[DllImport("user32.dll", EntryPoint = "ShowWindow")]
public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
[DllImport("user32.dll", EntryPoint = "UpdateWindow")]
public static extern bool UpdateWindow(IntPtr hWnd);
// variáveis para armazenar as câmeras
public Camera mainCamera;
public Camera secondaryCamera;
// variáveis para armazenar as janelas
private IntPtr mainWindowHandle;
private IntPtr secondaryWindowHandle;
void Start()
{
// obtém o identificador da janela principal do jogo
mainWindowHandle = GetActiveWindow();
// cria a segunda janela com as mesmas propriedades da janela principal
int style = 0x10 | 0x800000 | 0x20000000; // estilo da janela (WS_POPUP | WS_VISIBLE | WS_SYSMENU)
int x = Screen.width;
int y = 0;
int width = Screen.width / 2;
int height = Screen.height;
secondaryWindowHandle = CreateWindowEx(0, "UnityWndClass", "Secondary Window", style, x, y, width, height,
mainWindowHandle, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero);
// define a câmera secundária para renderizar na nova janela
secondaryCamera.targetDisplay = 1;
// mostra e atualiza a nova janela
ShowWindow(secondaryWindowHandle, 1);
UpdateWindow(secondaryWindowHandle);
}
void Update()
{
// renderiza a câmera principal na janela principal
GL.Clear(true, true, Color.black);
mainCamera.Render();
// renderiza a câmera secundária na segunda janela
GL.Clear(true, true, Color.black);
GL.IssuePluginEvent(secondaryCamera.targetDisplay + 1);
}
void OnApplicationQuit()
{
// fecha as janelas quando o jogo é encerrado
DestroyWindow(mainWindowHandle);
DestroyWindow(secondaryWindowHandle);
}
}
Tópicos semelhantes
» o meu main camera nao esta aparecendo
» Verificar se a camera está virada para o objeto
» Minha camera esta girando de maneira brusca
» Esta versão não está em conformidade com o requisito de 64 bits do Google Play
» Quando o objeto esta sendo gerado ele esta rotacionando
» Verificar se a camera está virada para o objeto
» Minha camera esta girando de maneira brusca
» Esta versão não está em conformidade com o requisito de 64 bits do Google Play
» Quando o objeto esta sendo gerado ele esta rotacionando
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos