unity中UI的屏幕自适应代码

public void ScreenUISelfAdptation(Transform scaleUI)
{
  float widthrate = UnityEngine.Screen.width / 1920.0f;
  float heightrate = UnityEngine.Screen.height / 1080.0f;
  float postion_x = scaleUI.GetComponent<RectTransform>().anchoredPosition.x * widthrate;
  float postion_y = scaleUI.GetComponent<RectTransform>().anchoredPosition.y * heightrate;
  scaleUI.localScale = new Vector3(widthrate, heightrate, 1);

  scaleUI.GetComponent<RectTransform>().anchoredPosition = new Vector2(postion_x, postion_y);
}

UnityEngine.Screen.width和UnityEngine.Screen.height是你要发布的屏幕分辨率大小。

1920.0f; x 1080.0f;是你制作UI时Gam e视图中的分辨率大小。

时间: 2024-08-06 20:03:33

unity中UI的屏幕自适应代码的相关文章

UI开发核心问题-UI随屏幕自适应

屏幕分辨率对UI适配的影响 一般来说,UIRoot都会选择FixSize的缩放模式,这样可以让UI随着分辨率而自动缩放,保持和屏幕相对的大小比例不变,让UI整体看上去不会有变大变小的奇怪现象.但是,还有另一个真正严重的问题:不同屏幕的宽高比不一样. 在Unity中,不同屏幕的宽高比,一般都会以高度为基准而拉伸宽度. 切换屏幕比例模式的方法为在Game视图中的屏幕比例菜单,FreeAspect为不限长宽比,可以在其中选择想要的长宽比. 如果屏幕比例菜单中没有想要的屏幕比例,可以单击菜单最底部那个小

针对Android平台我们需要学习如何在Unity中调用Android的JAVA代码。

Unity for Android 比较特殊,Unity for IOS 打包是将XCODE工程直接交给开发者,开发者可以在工程的基础上继续添加新的视图,最后由开发者自行打包生成IPA包,发布程序.而Unity for Android打包直接生成APK包,等于说源代码开发者是看不到的,但是Unity的自身确实有些局限,针对Android平台我们需要学习如何在Unity中调用Android的JAVA代码.本章我们的目标是使用Unity的脚本打开Activity.首先我们创建一个普通的Android

Qt入门学习——Qt Creator 中 ui 文件和 Qt 代码关系

通过<Qt Creator的使用>的学习,我们可以借助 Designer(界面设计器)快速设计界面. 此例子 ui 内容如下(只是简单添加了一个按钮): 工程的代码目录结构如下: 最终在工程所在目录会生成一个 ui 文件: 此 ui 文件实际上是xml 文件: 当我们编译 Qt 程序代码,Qt Creator 用 uic 工具把 ui 文件的内容转换成 C++ 代码,在工程目录同一级目录的 build- 目录下自动生成 ui_类名.h 文件,如本例子中的 ui_mywidget.h,是由 my

关于Unity中UI中的Button节点

Button是最常用的UI节点,包含的组件有 1.Image组件 显示Button的纹理,把Image贴图拖进Image组件中后,记得点击Set Native Size,显示贴图原始大小 2.Button组件 Interatable:打钩表示按钮可以被点击和交互,取消钩表示不能被点击和交互. Transition:过度效果,A.默认状态  B.鼠标划过效果Highlighted Sprite  C.按钮按下效果Pressed Sprite  D.按钮禁用状态Disabled Sprite 这里有

Unity中UI界面颤抖解决方法

将Render Mode中属性改为Screen Space - Camera 摄像机挂在Canvas属性下会出现UI界面颤抖的效果. UI界面颤抖解决方式:将Render Mode中属性改为Screen Space - Overlay,如下图所示:

Unity中的坐标系--屏幕转世界坐标

Camera.ScreenToWorldPointVector3 ScreenToWorldPoint(Vector3 position); 将屏幕坐标转换为世界坐标. 如何转换?假如给定一个所谓的屏幕坐标(x,y,z),如何将其转换为世界坐标? 首先,我们要理解摄像机是如何渲染物体的: 摄像机对游戏世界的渲染范围是一个平截头体,渲染边界是一个矩形,用与near clippingplane或者far clippingplane平行的平面截取这个平截头体,可以获得无数个平行的矩形面,也就是我们看到

unity中UI界面显示FPS

直接上代码 using UnityEngine; using System.Collections; public class HUDFPS : MonoBehaviour { // Attach this to a GUIText to make a frames/second indicator. // // It calculates frames/second over each updateInterval, // so the display does not keep changi

unity中UI坐标转3d世界坐标

方法: public static Vector3 UIScreenToWorldPoint(Vector3 uiPostion) { uiPostion = UICamera.mainCamera.WorldToScreenPoint(uiPostion); uiPostion.z = 1f; uiPostion = Camera.main.ScreenToWorldPoint(uiPostion); return uiPostion; }

unity3d ppsspp模拟器中的post processing shader在unity中使用

这个位置可以看到ppsspp的特殊处理文件位置来看看这些特效 用来测试的未加特效图片 ppsspp: 传说系列一生爱---英杰传说 最后的战士 aacolor 是关于饱和度,亮度,对比度,色调的调节,ppsspp中的默认参数为饱和度加强1.2倍,对比度增强1.25倍,在unity中我们可以设为外部变量自己调节 关键代码: float4 frag(v2f i) :COLOR { float size = 1 / _Size; float3 c10 = tex2D(_MainTex, i.uv_Ma