2013-01-14 16:35:58 jeksonal 阅读数 20619
  • Unity 值得看的500+ 技术内容列表

    Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

android手机屏幕分辨率五花八门,导致开发时不好把握,还好各个引擎对这个屏幕分辨率问题都有较好的处理方式;unity3D 也为我们提供了一个不错的解决方案。

在Unity3D 进行 android 游戏开发时,对于不同分辨率下的显示效果就像是摄像机的自动平移了一般,看了不少游戏,对于 Unity3D 开发 android 游戏貌似都没有做相应的屏幕分辨率的处理,而是随摄像机的自动移动,把场景做大些不至于出现空白背景。

其实 Unity3D 开发3D游戏,对于不同的分辨率,我们只需要设置 1 个唯一的屏幕显示区域比(说白了就是宽高比),这样显示区域就不会随分辨率的改变而拉升。

上代码:

using UnityEngine;
using System.Collections;


public class Resolution : MonoBehaviour {
    public Camera mainCamera;
    void Start()
    {
        //Screen.SetResolution(1280, 800, true, 60);
        mainCamera = Camera.mainCamera;
        //  float screenAspect = 1280 / 720;  现在android手机的主流分辨。
        //  mainCamera.aspect --->  摄像机的长宽比(宽度除以高度)
        mainCamera.aspect = 1.78f;
    }
}

把此代码脚本绑定在  MainCamera 上就OK了,这样就不会导致不同分辨率下屏幕显示区域大小不一的问题!

2017-05-16 11:48:00 ddry47579 阅读数 25
  • Unity 值得看的500+ 技术内容列表

    Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

Android手机屏幕分辨率五花八门,导致开发时不好把握,还好各个引擎对这个屏幕分辨率问题都有较好的处理方式;unity3D 也为我们提供了一个不错的解决方案。

在Unity3D 进行 android 游戏开发时,对于不同分辨率下的显示效果就像是摄像机的自动平移了一般,看了不少游戏,对于 Unity3D 开发 android 游戏貌似都没有做相应的屏幕分辨率的处理,而是随摄像机的自动移动,把场景做大些不至于出现空白背景。

其实 Unity3D 开发3D游戏,对于不同的分辨率,我们只需要设置 1 个唯一的屏幕显示区域比(说白了就是宽高比),这样显示区域就不会随分辨率的改变而拉升。

 1 using UnityEngine;
 2 using System.Collections;
 3 
 4 
 5 public class Resolution : MonoBehaviour {
 6     public Camera mainCamera;
 7     void Start()
 8     {
 9         //Screen.SetResolution(1280, 800, true, 60);
10         mainCamera = Camera.mainCamera;
11         //  float screenAspect = 1280 / 720;  现在android手机的主流分辨。
12         //  mainCamera.aspect --->  摄像机的长宽比(宽度除以高度)
13         mainCamera.aspect = 1.78f;
14     }
15 }

 把此代码脚本绑定在  MainCamera 上就OK了,这样就不会导致不同分辨率下屏幕显示区域大小不一的问题!

转载于:https://www.cnblogs.com/AaronBlogs/p/6860608.html

2019-10-30 00:03:10 Csoap2 阅读数 181
  • Unity 值得看的500+ 技术内容列表

    Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

首先确认开发分辨率,以移动平台为例,主流的分辨率比例是16:9,暂定开发分辨率16:9,设置Orthographicz正交摄像机
在这里插入图片描述
这里的size 的含义是屏幕的一般,也就是640/2=320,由于sprite默认的Pixels Per Unit设置的是100,所以 320/100=3.2

脚本代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Script_06_01 : MonoBehaviour {

	public Camera camera;

	void Update () 
	{
		float designWidth = 1136f;//开发时分辨率宽
		float designHeight = 640f;//开发时分辨率高
		float designOrthographicSize=3.2f;//开发时正交摄像机Size
		float designScale  =  designWidth/designHeight;
		float scaleRate  =  (float)Screen.width/(float)Screen.height;
		//当前分辨率大于开发分辨率,会自动缩放,小于的时候需要手动处理如下
		if(scaleRate<designScale)
		{
			float scale = scaleRate / designScale;
			camera.orthographicSize = 3.2f / scale;
		}else{
			camera.orthographicSize = 3.2f;
		}
	}

	void OnGUI()
	{
		GUILayout.Label (string.Format ("<size=60><color=red>{0} X {1} </color></size>", Screen.width, Screen.height));
	}
}
2017-11-25 16:57:21 qq_35957011 阅读数 1238
  • Unity 值得看的500+ 技术内容列表

    Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

unity打包之前Game视图显示的正常,是Scene场景中摄像机的范围区域,但是打包之后,选择不同的分辨率游戏中摄像机的视野大小是不同的,一般都是过大,看到一些不该看到的东西,下面这种方法就可以很好地固定大小了。不管选择多大的分辨率,显示的结果都是一样的(拉伸)。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NewBehaviourScript : MonoBehaviour {

    public Camera camera;

    public float width = 800;

    public float height = 600f;

    // Use this for initialization

    void Start()
    {
                Camera.aspect = width / height;
    }

}


2015-04-29 12:22:02 u014771617 阅读数 2758
  • Unity 值得看的500+ 技术内容列表

    Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

      用UGUI制作UI时,如果涉及射线的使用,就必须要使用到摄像机用来管理事件系统,并且在摄像机可见范围事件才会响应,同时,摄像机的视口范围也会影响事件的响应,一种比较好的方法是摄像机的视口就是game窗口,不妨称作摄像机与屏幕自适应:
    在此将摄像机的Projection选为Orthographic
    选择摄像机,在Inspector面板会出现相关参数设置,在此首先要明确几个概念:
    Inspector中的Size即Camera脚本中的orthographicSize表示Game视图中游戏视口高度的一半
    Inspector中的Transform的P的x和y为摄像机在Game视图中摄像机的位置坐标
    在摄像机的脚本中有一个aspect属性表示摄像机视口宽高比,默认情况下系统会自动根据Game视图的分辨率自动为我们计算好,不需要修改
则摄像机与屏幕的自适应如下:

using UnityEngine;
using System.Collections;
public class MainCameraResize : MonoBehaviour {
    Canvas canv;
    void Start()
    {
        canv = GameObject.Find("Canvas").GetComponent<Canvas>();
        Camera.main.transform.position = canv.transform.position;
        Camera.main.orthographicSize = Screen.height / 2;
    }
}

   将此脚本绑定在一个物体上运行游戏,摄像机视口就会自动与游戏屏幕相适应
注:Camera.main.orthographicSize = Screen.height / 2可换为Camera.main.orthographicSize = Camera.main.transform.position.y效果一样

没有更多推荐了,返回首页