簡體   English   中英

如何統一動態編寫視口矩形腳本

[英]How to Dynamically script viewport rect in unity

我想根據屏幕三個角落的車輛ID和右上角的主攝像頭視圖統一動態分配3架飛機的顯示。 我只是不確定如何將視口矩形腳本作為相機預制件的一部分。

在此處輸入圖像描述


編輯

為此,您必須搜索 camera.rect 並且可以使用基本 if 語句動態分配它。

using UnityEngine;

// Change the width of the viewport each time space key is pressed

public class ExampleClass : MonoBehaviour
{
    private Camera cam;

    void Start()
    {
        cam = Camera.main;
    }

    void Update()
    {
        if (Input.GetKey("space"))
        {
            // choose the margin randomly
            float margin = Random.Range(0.0f, 0.3f);
            // setup the rectangle
            cam.rect = new Rect(margin, 0.0f, 1.0f - margin * 2.0f, 1.0f);
        }
    }
}

在 api 中搜索 Camera.rect 以查找文檔。

這是您可以使用的簡單 if 語句

private void FixedUpdate()
{
if (Input.GetKeyDown(KeyCode.Space))
                    SplitScreen();
}
public void SplitScreen()
    {
        if (StateQueue.TryDequeue(out var stateMsg))

            if (stateMsg.ID == 9)
            {

                // choose the margin randomly
                float margin = Random.Range(0.0f, 0.3f);
                // setup the rectangle
                sensorCamera.rect = new Rect(margin, 0.25f, 1.0f - margin * 2.0f, 0.25f);
                MainCamera.rect = new Rect(margin, 0.50f, 0.0f - margin * 2.0f, 0.25f);

            }
            else if (stateMsg.ID == 10)
            { // choose the margin randomly
                float margin = Random.Range(0.0f, 0.3f);
                // setup the rectangle
                sensorCamera.rect = new Rect(margin, 0.25f, 0.0f - margin * 2.0f, 0.25f);
                MainCamera.rect = new Rect(margin, 0.50f, 0.0f - margin * 2.0f, 0.25f);

            }
            else if (stateMsg.ID == 11)
            {
                // choose the margin randomly
                float margin = Random.Range(0.0f, 0.3f);
                // setup the rectangle
                sensorCamera.rect = new Rect(margin, 0.25f, 0.25f - margin * 2.0f, 0.25f);
                MainCamera.rect = new Rect(margin, 0.50f, 0.0f - margin * 2.0f, 0.25f);
            }
            else
            {
                Debug.Log("this didnt work");
            }

        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM