Unity获取实际尺寸和设计尺寸

using UnityEngine;
private float ratio = 1f;
private float panelW;
private float panelH;

UIRoot root = GameObject.FindObjectOfType<UIRoot>();
if (root != null) {
    // 实际尺寸和设计尺寸比例
    ratio = (float)root.activeHeight / Screen.height;
}
// 设计尺寸
panelW = transform.GetComponent<UIPanel>().width;
panelH = transform.GetComponent<UIPanel>().height;
// 实际尺寸
width = panelW * ratio;
height = panelH * ratio;
时间: 2024-12-23 08:03:35

Unity获取实际尺寸和设计尺寸的相关文章

Unity 获取网络北京时间

最近在做的单机,由于需要获得网络时间,搜了很多Unity获取网络服务器的代码,大多数不是接口已经失效就是代码过于繁琐.(心中满满的吐槽)直接放代码 获取网页内容后是 0=跟一个15位时间戳.需要自己转换成时间格式.

unity基础开发----Unity获取PC,Ios系统的mac地址等信息

在软件开发中可以会用到mac地址作为,设备的唯一标示,我们也可以通过unity获取,经测试pc,ios都可以但是安卓没有获取到. 代码如下: using UnityEngine; using System.Collections; using System.Net.NetworkInformation; public class NetWorkInfo : MonoBehaviour { void Start() { Debug.Log(GetMacAddress()); } public st

Unity获取Android和iOS手机系统电量及网络状况

最开始考虑使用中间静态链接库来调用手机系统自带的API,但是在研究的过程中发现Android系统将电量等信息记录在了固定的文件中,所以只需要在C#中直接读取就可以而不需要中间库. a.Android版 1.通过C#直接读取,下面的GetBatteryLevel()方法 int GetBatteryLevel() { try { string CapacityString = System.IO.File.ReadAllText("/sys/class/power_supply/battery/c

Unity获取摄像机在某个平面上的视野范围

这是已知平面上的一个点和平面的法线的情况下,求摄像机在平面看到的视野范围,下图绿色的框框就是了. 效果: 代码: 1 using UnityEngine; 2 using System.Collections; 3 using System; 4 5 public class CameraPlaneView : MonoBehaviour 6 { 7 #region for debug 8 public Camera viewCamera; 9 10 void Update() 11 { 12

unity 获取和设置gameObject的坐标

// 获取player_postion变量指定的对象的三围坐标 Vector3 player_postion = Player.transform.position; // 获取X,Y,Z值 float x = player_postion.x; float y = player_postion.y; float z = player_postion.z; // 设置应用了当前函数的GameObject的坐标 // 1.直接赋值 this.GetComponent<Transform>().p

Unity获取文件夹下指定类型的文件数量

有个文件夹里面有很多的图片,都是.png格式的,要是一个一个的拖到脚本上觉得很麻烦,就写了一个遍历添加的cars,变量是List<Sprite> 代码如下: using UnityEngine; using System.IO; using System.Collections.Generic; public class NewBehaviourScript : MonoBehaviour { private List<Texture> cars = new List<Tex

Unity 获取服务器时间 HTTP请求方式

在写每日签到的时候,我居然使用的是本地时间...被项目经理笑哭了...., 如果你在写单机游戏,没有游戏服务器,但又不想使用本地时间,就可以采用下面方法. 方法总结: 1. 使用HTTP请求获取服务器时间,不能实时获取服务器时间这样高频率的 2. 使用socket可以实时获取服务器时间 3. 使用C#自带API获取sql server 标准北京时间(=.=还没有找到这个API) 第HTTP方式: 代码: using UnityEngine; using System.Collections; u

unity获取ugui上鼠标位置

public class GetMousePos : MonoBehaviour { public Canvas canvas;//画布 private RectTransform rectTransform;//坐标 void Start() { canvas = GameObject.Find("Canvas").GetComponent<Canvas>(); rectTransform = canvas.transform as RectTransform; //也可

Unity获取鼠标点击位置,物体朝鼠标点击处移动

大型游戏中经常会有这种场景,点击屏幕位置,人物就会朝着鼠标点击位置移动,下面我们就来实现这种效果. 首先,我们在场景中添加一个Plane,并且设置它的tag为Plane,然后,在Plane上面添加一个Cube,设置好位置,刚好放置在Plane上面,最后,给cube添加一个脚本,脚本内容如下: using UnityEngine; using System.Collections; public class RayCastTest : MonoBehaviour { //cube移动速度 publ