unity3d-Camera

128 阅读1分钟

Camera

✨学习阶段我会不断的更新新的内容,文章如有误请指正,如果觉得对你有用,请点赞收藏关注一波,谢谢支持😘

Camera

变量

变量名作用
aspect宽高比(宽度除以高度)。

公共函数

函数名作用
ResetAspect将宽高比还原为屏幕宽高比。
renderMode 简单用法该 Canvas 处于世界模式还是覆盖模式?
ScreenPointToRay返回从摄像机通过屏幕点的光线。
ViewportPointToRay返回从摄像机通过视口点的光线。
ScreenToViewportPoint将 position 从屏幕空间变换为视口空间。
ScreenToWorldPoint将点从屏幕空间变换为世界空间。其中,世界空间定义为位于游戏层级视图最顶层的坐标系统。
ViewportToScreenPoint将 position 从视口空间变换为屏幕空间。
ViewportToWorldPoint将 position 从视口空间变换为世界空间。
WorldToScreenPoint将 position 从世界空间变换为屏幕空间。
WorldToViewportPoint将 position 从世界空间变换为视口空间。

静态函数

静态函数作用
FindObjectsOfType返回所有类型为 type 的已加载的激活对象的列表。

代码演示:\

public class Example : MonoBehaviour
{
	//枚举
    enum RenderModeStates { camera, overlay, world };
    RenderModeStates m_RenderModeStates;

	//相机组件
    Canvas m_Canvas;

    void Start()
    {
        m_Canvas = GetComponent<Canvas>();
    }

    void Update()
    {
        //Press the space key to switch between render mode states
        if (Input.GetKeyDown(KeyCode.Space))
        {
            ChangeState();
        }
    }

使用switch判断
    void ChangeState()
    {
        switch (m_RenderModeStates)
        {
            case RenderModeStates.camera:
                m_Canvas.renderMode = RenderMode.ScreenSpaceCamera;
                m_RenderModeStates = RenderModeStates.overlay;
                break;
            case RenderModeStates.overlay:
                m_Canvas.renderMode = RenderMode.ScreenSpaceOverlay;
                m_RenderModeStates = RenderModeStates.world;
                break;
            case RenderModeStates.world:
                m_Canvas.renderMode = RenderMode.WorldSpace;
                m_RenderModeStates = RenderModeStates.camera;
                break;
        }
    }
}

在这里插入图片描述