unity3d大屏(unity3d 关于屏幕大小,江湖救急~~)

:暂无数据 2026-04-15 06:40:02 0
我们整理了关于unity3d大屏最高频的提问,发现unity3d 关于屏幕大小,江湖救急~~位列榜首。于是,就有了这篇集中解答的精华帖。

本文目录

unity3d 关于屏幕大小,江湖救急~~

这个screen.width 是游戏窗口的宽度,不是显示器的0.1f*screen.width应该是窗口的左侧

如何让unity3d自适应分辨率比如有16:9和16:10的各种屏幕,尤其是当使用GUI时候

public override void GUIDraw (){
//开始缩放
//先定义一个标准屏幕大小代码按照这个分辨率写,这里屏是800*480象素,GUI矩阵再乘以新的缩放矩阵实现GUI的缩放,GUI.matrix*=scaleMatrix;
ScreenScaleUtil.BeginScreenScale ();
//GUI代码
GUI...
//结束缩放
ScreenScaleUtil.EndScreenScale ();
}
ScreenScaleUtil.cs
using UnityEngine;
using System.Collecti***;
using System.Collecti***.Generic;
public enum ScreenScaleType
{
None,
Center,
Fit,
Full
}
public static class ScreenScaleUtil
{
static ScreenScaleUtil ()
{
scaleRate=1;
scaleType = ScreenScaleType.None;
scaleMatrix = Matrix4x4.identity;
screenSize = new Vector2 (800, 480);

ScaleType=ScreenScaleType.Fit;

lstMats =new List《Matrix4x4》();

}
private static Matrix4x4 scaleMatrix;
private static ScreenScaleType scaleType;
private static Vector2 screenSize;
private static float scaleRate;
public static Matrix4x4 ScaleMatrix {
get {return scaleMatrix; }
}
public static ScreenScaleType ScaleType {
get { return scaleType; }
set {
if (value != scaleType) {

scaleType = value;

scaleMatrix = GetScreenScaleMatrix (screenSize, scaleType,out scaleRate);
}
}
}
public static Vector2 ScreenSize {
get { return screenSize; }
set {
if (value != screenSize) {
screenSize = value;

scaleMatrix = GetScreenScaleMatrix (screenSize, scaleType,out scaleRate);
}

}
}

public static float ScaleRate{
get{
return scaleRate;
}
}
public static void Update(){
scaleMatrix = GetScreenScaleMatrix (screenSize, scaleType,out scaleRate);
}
public static Matrix4x4 GetScreenScaleMatrix (Vector2 screenSize, ScreenScaleType scaleType)
{
float rate;
return GetScreenScaleMatrix(screenSize,scaleType,out rate);
}
public static Matrix4x4 GetScreenScaleMatrix (Vector2 screenSize, ScreenScaleType scaleType,out float rate)
{
Matrix4x4 scaleMatrix;
rate = 1;

if (scaleType == ScreenScaleType.None) {
scaleMatrix = Matrix4x4.identity;

} else {
if ((Screen.width / (float)Screen.height) 《 (screenSize.x / screenSize.y)) {

if (scaleType == ScreenScaleType.Fit) {
rate = Screen.width / screenSize.x;
} else if (scaleType == ScreenScaleType.Full) {
rate = Screen.height / screenSize.y;
}
} else {
if (scaleType == ScreenScaleType.Fit) {
rate = Screen.height / screenSize.y;
} else if (scaleType == ScreenScaleType.Full) {
rate = Screen.width / screenSize.x;
}
}
scaleMatrix = Matrix4x4.TRS (new Vector3 ((Screen.width - screenSize.x * rate) / 2.0f, (Screen.height - screenSize.y * rate) / 2.0f, 0), Quaternion.identity, new Vector3 (rate, rate, 1));

}
return scaleMatrix;
}

private static List《Matrix4x4》 lstMats;

public static void BeginScreenScale(){

if(lstMats.Count》0){
return;
}

lstMats.Add(GUI.matrix);
GUI.matrix*=ScaleMatrix;

}

public static void BeginScreenScale(ScreenScaleType scaleType ){

if(lstMats.Count》0){
return;
}

lstMats.Add(GUI.matrix);
GUI.matrix*=GetScreenScaleMatrix(screenSize,scaleType);

}
public static void EndScreenScale(){
if(lstMats.Count《=0)
return;

GUI.matrix=lstMats;

lstMats.RemoveAt(lstMats.Count-1);
}
}

unity3d 中整体画面太大,想突出局部效果,加了多个camera小视口同时显示,但由于背景相同效

直接给小窗口摄像机一个带alpha的贴图,让中央透明即可
或者用Graphics、Mesh什么的画线来遮挡边缘

unity3d 怎样设置游戏全屏

在你打包游戏的时候building settings里有player settings 把display resolution dialog这个选择里面的enable改成hidden by default 因为上面有默认的default is full screen 就会自己全屏了

【Unity基础】如何设置unity3d窗口大小

你说unity**窗口是哪个模块里的窗口?

unity**有很多和窗口大小有关的喔!

我简单例一个常用的摄像机画布大小设置:

新建一个摄像机,然后将摄像机里的属性 physical打上勾

然后在sensor size 里设置分辨率 如 800X600,这个值你自己设置

以上希望可以帮助到你

知识的价值在于流动。如果你从本文中获益,请将它流动给下一个需要的人(分享)。
本文编辑:admin

更多文章:


正则表达式半小时入门(正则表达式好难懂,求高人指点,怎么学有什么好的理解方法没有看到那一串符号,晕了)

正则表达式半小时入门(正则表达式好难懂,求高人指点,怎么学有什么好的理解方法没有看到那一串符号,晕了)

正则表达式半小时入门和正则表达式好难懂,求高人指点,怎么学有什么好的理解方法没有看到那一串符号,晕了,看似独立,实则血脉相连。它们是如何相互影响的?本文将为你层层剖析。

2026年4月15日 08:20

汇编指令集详细解释(汇编几条指令 帮忙解释下)

汇编指令集详细解释(汇编几条指令 帮忙解释下)

想高效掌握汇编指令集详细解释的核心吗?本文将为你聚焦汇编几条指令 帮忙解释下这一关键环节,帮你节省大量摸索时间。

2026年4月15日 08:00

数组公式求个数(excel如何统计数据个数)

数组公式求个数(excel如何统计数据个数)

今天这份关于数组公式求个数的指南,将用80%的篇幅讲透excel如何统计数据个数这个决定成败的细节,绝对让你不虚此行。

2026年4月15日 07:40

under the moon(Under Moon 什么意思)

under the moon(Under Moon 什么意思)

承接之前对under the moon的讨论,本篇我们将视角下沉,专门来聊聊实操中无法回避的Under Moon🐾 什么意思问题,让知识落地。

2026年4月15日 07:20

管理系统页面(实验室设备管理系统 页面设计 后台基于nodejs 数据库mysql)

管理系统页面(实验室设备管理系统 页面设计 后台基于nodejs 数据库mysql)

从我第一次听说管理系统页面到真正弄懂实验室设备管理系统 页面设计 后台基于nodejs 数据库mysql,也走过一些弯路。下面就把我的学习心得分享给大家,希望能让您的入门之路更顺畅。

2026年4月15日 07:00

unity3d大屏(unity3d 关于屏幕大小,江湖救急~~)

unity3d大屏(unity3d 关于屏幕大小,江湖救急~~)

我们整理了关于unity3d大屏最高频的提问,发现unity3d 关于屏幕大小,江湖救急~~位列榜首。于是,就有了这篇集中解答的精华帖。

2026年4月15日 06:40

卸载captiveportallogin(魅蓝3怎么管理手机自带的软件,其中有captiveportallogin,我一连WiFi它就自)

卸载captiveportallogin(魅蓝3怎么管理手机自带的软件,其中有captiveportallogin,我一连WiFi它就自)

大家好,关于卸载captiveportallogin很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于魅蓝3怎么管理手机自带的软件,其中有captiveportallogin,我一连WiFi它就自的知识点,相信应该可以解决大家

2026年4月15日 06:20

matlab怎样安装(matlab安装不了,出现这个,怎么办)

matlab怎样安装(matlab安装不了,出现这个,怎么办)

很多朋友初次接触matlab怎样安装可能会觉得有点陌生,这很正常。今天这篇文章,咱们就一起把matlab安装不了,出现这个,怎么办这事儿聊透,希望能帮您理清思路。

2026年4月15日 06:00

like怎么读(like怎么读英语)

like怎么读(like怎么读英语)

关注本号的朋友都知道,我们一直在持续输出关于like怎么读的干货。今天,我们就聚焦到大家反复问到的like怎么读英语上。

2026年4月15日 05:40

什么是面向对象的封装(面向对象的三大特征(封装,继承,多态)通俗一点怎么理解c#结合)

什么是面向对象的封装(面向对象的三大特征(封装,继承,多态)通俗一点怎么理解c#结合)

大家好,如果您还对什么是面向对象的封装不太了解,没有关系,今天就由本站为大家分享什么是面向对象的封装的知识,包括面向对象的三大特征(封装,继承,多态)通俗一点怎么理解c#结合的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年4月15日 05:20

最近更新

under the moon(Under Moon 什么意思)
2026-04-15 07:20:02 浏览:0
like怎么读(like怎么读英语)
2026-04-15 05:40:03 浏览:0
热门文章

channel attention(深度学习attention map的中文意思是什么)
2026-04-12 15:00:01 浏览:0
littering(litter是什么意思)
2026-04-12 01:40:02 浏览:0
mysql using btree(using btree 什么意思)
2026-04-11 20:20:02 浏览:0
cocos2dx转cococs creator(如何将cocos2dx移植到eclipse上)
2026-04-11 15:00:02 浏览:0
screen capture(screen capture是winds自带的吗)
2026-04-12 04:20:03 浏览:0
标签列表