Scale With Screen Size 使用unity的自适应算法,此时unity会根据屏幕分辨率自动调节Scale Factor的值
Constant Physical Size 按照实际物理尺寸显示,这种模式比较少用 3、Screen Match Mode,UI屏幕适应模式,也有三种模式
Match Width Or Height 适应高度或者宽度 当值为0即处于Width那端时,表示屏幕高度对于UI大小完全没有任何影响,只有宽度会对UI大小产生影响。 同理当值为1即处于Height那端时,表示屏幕宽度对于UI大小完全没有任何影响,只有高度会对UI大小产生影响。 通常情况下,横屏游戏选择1,竖屏游戏选择0,正方形屏幕游戏可以选择0.5
Scale With Screen Size 使用unity的自适应算法,此时unity会根据屏幕分辨率自动调节Scale Factor的值
Constant Physical Size 按照实际物理尺寸显示,这种模式比较少用 3、Screen Match Mode,UI屏幕适应模式,也有三种模式
Match Width Or Height 适应高度或者宽度 当值为0即处于Width那端时,表示屏幕高度对于UI大小完全没有任何影响,只有宽度会对UI大小产生影响。 同理当值为1即处于Height那端时,表示屏幕宽度对于UI大小完全没有任何影响,只有高度会对UI大小产生影响。 通常情况下,横屏游戏选择1,竖屏游戏选择0,正方形屏幕游戏可以选择0.5
1、Canvas选择一定的分辨率,比如手机横屏通常选择1344*750。
2、UI Scale Mode,UI缩放模式,有三种模式
Constant Pixel Size时,UI在任何分辨率下都不会进行缩放拉伸,只有通过改变Scale Factor才会进行缩拉,因此不推荐使用该模式(而这种模式的优点就是你可以通过写自适应算法来改变Scale Factor的值,代替unity的自适应算法)。
Scale With Screen Size 使用unity的自适应算法,此时unity会根据屏幕分辨率自动调节Scale Factor的值
Constant Physical Size 按照实际物理尺寸显示,这种模式比较少用
3、Screen Match Mode,UI屏幕适应模式,也有三种模式
Match Width Or Height 适应高度或者宽度
当值为0即处于Width那端时,表示屏幕高度对于UI大小完全没有任何影响,只有宽度会对UI大小产生影响。
同理当值为1即处于Height那端时,表示屏幕宽度对于UI大小完全没有任何影响,只有高度会对UI大小产生影响。
通常情况下,横屏游戏选择1,竖屏游戏选择0,正方形屏幕游戏可以选择0.5
Expand 伸展模式
设计了一个button宽高为200*100,即宽高比为2:1,放在4:3的屏幕内;然后把这个button放在16:9的屏幕内,显然地,此时button是不能进行等比例的缩放的,即无法保持2:1的宽高比了,Expand的意思就是尽可能地使UI拉伸来适应屏幕。
Shrink 裁切模式
在尽量适应的情况下,多出屏幕的部分不显示。
4、在game面板选择与Canvas一样的分辨率,以便更好地查看实际效果。
首先定义两个float的变量来接收屏幕的宽和高 higth高 width宽
在最开始的时候获取屏幕的宽和高 screen.height
定义一个RectTranform的对象 gh
再定义一个要适配物体的对象 red
在开始时找到适配物体的RectTranform组件并赋值给gh
使用一个二维向量,设定他的宽和高各站屏幕的几分之几
sizdelta是这个RectTransform的大小相对于锚点之间的距离。
把这个二维向量赋值给gh.sizdelta
再定义一个二维向量去接收这个图片的大小 fs
最后在设定位置使用anchoredPosition 用二维向量控制此RectTransform的枢轴相对于锚点引用的位置
写完后回到Unity,把对应的物体进行赋值,运行则可以出效果
UGUI屏幕适配原则
- 固定像素
忽略屏幕的大小根据UI元素的实际像素显示 ,像素大小始终不变,即一个100*100的图片在任何的分辨率下都占用100*100的像素。一般PC上会使用这种方式,因为PC端分辨率差异并不大。
- 根据屏幕大小进行缩放(也是最常用的一项)
此项会根据设备真实分辨率与设计分辨率来对Canvas进行缩放。有三种模式:
1.Match Width or Height
根据宽或者高来对Canvas进行缩放,比如设备分辨率为1920*900,设计分辨率为1280*720,此时,如果采用宽进行匹配那么可以通过公式计算出此时应该缩放多少倍,公式如下:
缩放因子:1920/1280 = 1.5
缩放后的Canvas的宽为:1920(刚好能够完全显示)
缩放后的Canvas的高为:720*1.5 = 1080
由于设备的高为900所以会导致高度上的一部分不会被显示出来
2.Expand
适配的计算公式同上,只是在此模式下会保证设计分辨率下的东西能够全部显示出来,及选择设备分辨率和设计分辨率的宽、高比中选择最小值作为缩放因子。
3.Shrink
和Expand恰好相反,在此模式下不会留黑边但是会导致显示不完全。及选择设备分辨率和设计分辨率的宽、高比中选择最大值作为缩放因子。
UiScaleMode一般选择Scale With Screen Size,并设置好设计分辨率。其他两个选项都是固定像素大小。
Screen Match Mode中一般选择Expand,它可以保证ui中的所有元素都在屏幕内部。 相对比的一个选项是Shrink,它可以保证不留空白边。
3、多分辨率的思路是Scaler中选择Expand保证所有ui元素在屏幕内部。少部分界面,如主界面、战斗界面等根据需要设置Anchors中的全屏拉伸。注意,这里的拉伸的含义仅仅是设置Panel的宽、高,并不影响子控件的缩放,但是会影响其布局。
- 固定物理大小
忽略屏幕大小和分辨率根据UI的实际物理大小来显示。
直接与屏幕适配相关.控制canvas下所有UI元素的缩放比例
UI Scale Mode缩放模式三种:
Constant Pixel Size:忽略屏幕大小,UI保持相同的像素大小.
Scale With Screen Size:根据屏幕大小,缩放UI.
Constant Physical Size:忽略屏幕大小及分辨率,UI保持相同的物理大小.
这里我们选择使用Scale With Screen Size模式.
Reference Resolution:表示我们设计的目标分辨率.
Screen Match Mode:选择Match Width Or Height,表示根据宽度或高度来缩放.
Mtch:表示缩放权重,0表示根据宽度,1表示根据高度,中间混合.
1、Canvas选择一定的分辨率,比如手机横屏通常选择1344*750。
2、UI Scale Mode,UI缩放模式,有三种模式
Constant Pixel Size时,UI在任何分辨率下都不会进行缩放拉伸,只有通过改变Scale Factor才会进行缩拉,因此不推荐使用该模式(而这种模式的优点就是你可以通过写自适应算法来改变Scale Factor的值,代替unity的自适应算法)。
Scale With Screen Size 使用unity的自适应算法,此时unity会根据屏幕分辨率自动调节Scale Factor的值
Constant Physical Size 按照实际物理尺寸显示,这种模式比较少用
3、Screen Match Mode,UI屏幕适应模式,也有三种模式
Match Width Or Height 适应高度或者宽度
当值为0即处于Width那端时,表示屏幕高度对于UI大小完全没有任何影响,只有宽度会对UI大小产生影响。
同理当值为1即处于Height那端时,表示屏幕宽度对于UI大小完全没有任何影响,只有高度会对UI大小产生影响。
通常情况下,横屏游戏选择1,竖屏游戏选择0,正方形屏幕游戏可以选择0.5
Expand 伸展模式
设计了一个button宽高为200*100,即宽高比为2:1,放在4:3的屏幕内;然后把这个button放在16:9的屏幕内,显然地,此时button是不能进行等比例的缩放的,即无法保持2:1的宽高比了,Expand的意思就是尽可能地使UI拉伸来适应屏幕。
Shrink 裁切模式
在尽量适应的情况下,多出屏幕的部分不显示。
4、在game面板选择与Canvas一样的分辨率,以便更好地查看实际效果。
摘自
链接:https://www.jianshu.com/p/6ab8467d77d1
首先定义两个float的变量来接收屏幕的宽和高 higth高 width宽
在最开始的时候获取屏幕的宽和高 screen.height
定义一个RectTranform的对象 gh
再定义一个要适配物体的对象 red
在开始时找到适配物体的RectTranform组件并赋值给gh
使用一个二维向量,设定他的宽和高各站屏幕的几分之几
sizdelta是这个RectTransform的大小相对于锚点之间的距离。
把这个二维向量赋值给gh.sizdelta
再定义一个二维向量去接收这个图片的大小 fs
最后在设定位置使用anchoredPosition 用二维向量控制此RectTransform的枢轴相对于锚点引用的位置
写完后回到Unity,把对应的物体进行赋值,运行则可以出效果
设置画布的缩放模式为按屏幕尺寸缩放;
设置一个基准分辨率;
设置为按宽高等比例缩放;
把控件放到合适的位置,然后把锚点的四个角分别放到控件对应的四个控制点上
相关问题推荐
还是要学好编程基础呀如果你觉得编程很苦难 不一定要从c#开始学 学学js flash as等等 有个梯度就好多了如果要用好unity 不会编程那是不行的 学习的过程中都有个头疼的过程 记住 头越痛 代表你要接受的东西越多 坚持 你的大脑在和知识兼容中:D...
可以先思考学习的目的,是什么因素在驱动你。是完成一款作品?进入某个行业?还是探究某类问题?否则和技术相关的知识浩如烟海,很容易迷失在细枝末节上。而要找到动力源头。个人的经验,就是关注一些和自己同方向,同类型的创作者。他们输出的作品会激励你,...
可以让模型师直接作出这样的形状,如果用纯Unity制作,就要用基本游戏对象拼接了,包括楼梯,城堡,都可以拼接出来。正常情况不会这样做,因为不够精美,都是建模师来实现,毕竟Unity不属于专业的建模软件,侧重于实现功能。...
Shader Unlit/Test{Properties{_MainTex(MainTex,2D)=white{}_MainColor(MainColor,COLOR)=(1,1,1,1)_AddTex(AddTex,2D)=white{}_Maxset(Max,Range(0.1,1.0))=0.1}SubShader{Tags{RenderType=Transparent Queue=Tran...
文章主要为大家详细介绍了Unity Shader实现水波纹效果,文中示例代码介绍的非常详细具体代码实现如下:Shader Custom/shuibowen{ Properties{ _MainTex(Base (RGB),2D)=white{} _distanceFactor(Distancefactor,float)=1 _timeFactor(time factor,float)=...
策划的最基本的原则就是:改进缺点,做别人没有做到的。无论游戏策划还是其它策划都是一样! 游戏策划的第二个原则:放飞思想。也许你认为我是说策划们应该充满想象力,能想一些匪夷所思的东西!对不起。不是这意思!一个合格的策划不是为了发泄自己的...
可以多玩一些其它的游戏,看一些科幻电影等,寻找灵感。
游戏架构与设计不纯粹是一门科学,它不需要提出假设或探究真理,也不被逻辑或正规方法的严格标准所束缚。游戏的目的就是通过玩来获得娱乐,因此游戏设计即需要艺术家一样的创造力,也需要工程师一样的精心规划。游戏设计是一门手艺,就像好莱坞的电影摄像或服...
void Update(){ transform.rotation = Quaternion.Euler(Vector3.zero);}可以试一下,保证物体x轴和z轴为0就可以使其一直垂直。
界面左右移动、上下移动。。本质都是:手指滑动。。。可以参考这些:https://www.cnblogs.com/coldcode/p/5362537.htmlhttps://blog.csdn.net/totosj/article/details/80112852https://blog.csdn.net/zcc858079762/article/details/85253120...
首先新建一个C#脚本,命名为MyFollow,然后把以下代码粘贴进去,保存:AخA 1using UnityEngine;2using System.Collections;3public class MyFollow : MonoBehaviour4{5 public float distanceAway = 5; // distance...
安装高通的Vuforia插件即可。
不可以,只能一个工程打一个包。
Edit->Project Settings->Graphics 找到Shader Stripping 中fog mode设置为custom(原来是Automatic),然后选中你想要的模式,最后重新打包就ok
用到的插件:System.Drawing.dllSystem.Windows.Forms.dllSystem.Deployment.dll(运用基于.Net4.x的dll打包时,需要用到该dll,否则会报错)代码如下:using System;using System.Runtime.InteropServices;using UnityEngine;using UnityEngine.UI; p......
如下图,设置为none,然后删掉滑动条就可以了。