unity3d中如何设置2个摄像机,使游戏画面中同时出现2个场景,一个主场景,一个缩略图??

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity3d中如何设置2个摄像机,使游戏画面中同时出现2个场景,一个主场景,一个缩略图??相关的知识,希望对你有一定的参考价值。

同上,求具体做法,越具体越好

调试C#脚本的方式有以下方式:(1)利用断点调试。断点设置和取消的法与在控制台应用程序中利用断点调试C#代码的法相同。(2)通过Debug类提供的方法在后台输出调试信息。该法会直接在VS2015输出窗口以及Unity的控制台(Console)中输出调试信息。(3)在Unity的播放预览模式下,直接修改检视器(Inspector)中显示的变量的值,观察不同值的效果。三、本节例子的设计步骤1、运行Unity,新建ch06Demo工程。2、在Project视图的Assets下添加一个名字为“6.2”的子文件夹,然后将默认的场景保存到该文件夹下,场景名称为“Scene2.unity”。3、在Assets/6.2文件夹下鼠标右击添加一个文件名为ch06_2_1.cs的C#脚本,然后双击它在VS2015中打开该脚本,将其改为下面的内容:usingUnityEngine;usingSystem.Collections;publicclassch06_2_1:MonoBehaviourpublicintage=20;privatestringtext="";privatestringmyName="";voidOnGUI()//用标签显示文本GUILayout.Label(string.Format("你的年龄是:0\n",age));GUILayout.Label("请输入你的名字:");//在文本区域中输入名字text=GUILayout.TextField(text);//按钮if(GUILayout.Button("提交"))myName=text;//当myName不为空的时候,说明我们已经提交了名字,则显示名字if(!string.IsNullOrEmpty(myName))GUILayout.Label("提交成功,名字:"+myName);4、按+S保存该脚本。5、切换到Unity,观察Project下的文件夹,会发现6.2文件夹下有2个文件:5、在层次视图中鼠标右击,添加一个空的GameObject:6、选中GameObject,以便在检视器中观察它。然后将ch06_2_1.cs拖放到检视器中得到下面的结果:这时你就会发现,脚本中声明为public的age变量,在GameObject的检视器视图中被自动封装成了Age属性,并显示在脚本的下面。说明:这就是为什么我们在C#脚本中用小写字母开头的age来声明这个变量,因为Unity会将自动其封装为用大写字母开头的同名属性。6、按【播放】按钮进入预览模式,即可看到运行效果:7、在文本框中输入名字,单击【提交】按钮,就会在界面中的下一行显示出名字信息。8、拖放检视器中【Age】属性的值(按住鼠标左右拖放),你就会发现该值在场景中也会跟着变化:9、再次按【播放】按钮结束预览模式。10、切换到VS2015,再要插入代码处鼠标右击,选择【ImplementMonoBehabious】,在弹出的窗口中,勾选Start(),如下图所示:单击【OK】,它就会自动在当前光标处添加Start()方法。11、将Start()改为下面的代码:publicvoidStart()Debug.Log("Age:"+age);//还可以输出下面的分类信息Debug.Log("普通信息");Debug.LogWarning("警告信息");Debug.LogError("错误信息");12、选择【AttachtoUnityandPlay】:然后单击它,此时,它就会自动从VS2015切换到Unity,并在Unity的Console选项卡中输出下面的内容:当然了,这样做只是为了演示如何在VS2015中直接启动Unity下的播放预览模式,并在Unity的Console中输出不同级别的信息(一般、警告、错误)。在实际的代码中肯定不会这样做,而是应该根据具体情况,决定在后台输出哪一类的调试信息。13、单击Unity的【播放】按钮结束预览模式。14、切换到VS2015,结束运行,然后注释掉Start()方法中的语句,单击【保存】或者【全部保存】:好了,通过这个例子,你应该知道如何在VS2015中调试C#脚本了吧。另外,你也可以直接在VS2015的解决方案资源管理器中项目的对应文件夹下添加新的C#脚本或者其他资源,或者创建新的子文件夹(VS2015中项目文件夹的结构和Unity工程中Project下文件夹的结构完全相同),保存后它都会自动将其同步到Unity的Assets下的对应文件夹中,这个“同步”过程完全是自动的,你所做的就是“创建”、“编辑”、“保存”。 参考技术A 再加一个camera,

然后设置一下offset,比如0.4,0.3,就是说 缩略图会占40% 和30% (长和宽)
参考技术B 你说的是两个相机的影像相互叠加吧,把相机改为深度模式就行,类似于做UI相机的原理

如何设置投影矩阵以进行类似胫骨的投影?

我在这里打了一会儿,但我仍然可以找到一种方法来设置一个矩阵,以Tibianeske的方式投射我的Unity游戏:

example of tibia game view

阅读互联网上的教程,我可以弄清楚正常的正交透视是如何工作的,但是胫骨是一种奇怪的东西。

我在here找到了一个网站(克林特·贝兰格),他很好地描述了如何在搅拌机的渲染中获得相同的视角:

从45度等距的场景开始。视频游戏风格,摄像机角度为Blender(60,0,45)。

在Blender中,如果您查看按钮窗口 - >场景 - >渲染按钮 - >格式,您可以设置渲染宽高比。将AspY设置为AspX的一半。这与采用常规渲染输出和缩放X 50%相同。如果渲染立方体,立方体的顶部将是一个完美的正方形(尽管角度为45度)。

然后我们可以使用Blender节点将结果旋转45度。输出:

请注意,这开始是一个立方体,所以有很多“垂直”失真。因此,在使用此方法之前,您可能需要将网格缩放到50%Z。另请注意Edge似乎是在Aspect之后应用,因此边缘不会失真。

混合文件:http://clintbellanger.net/images/temp/UltimaVII.blend(我是一个节点菜鸟,所以可能有一个更聪明的设置)。

对于踢球,这里再次是那座塔。我将其拉入上述工作流场景并将Z缩放了50%。单击第一个节点上的“重新渲染此图层”以创建合成。

在他的方法中,他使用了重新缩放渲染和改变模型比例的东西,我确信我可以与4x4矩阵一致(或者在任何其他3D环境中)。

希望有更多经验丰富的3D数学技巧可以帮助我弄明白。谢谢! = d

答案

你要的是一个简单的parallel projection。典型的正投影仅是投影光线垂直于图像平面的特殊情况。然而,每个平行投影可以用affine shear transformation表示,然后是标准正交投影。

我确信我可以与4x4矩阵在统一(或任何其他3D环境中)相处得很好。

是。在这里使用默认的GL约定,您所要做的就是采用标准的ortho矩阵,将其乘以适当的shear matrix并将其用作投影矩阵。

以上是关于unity3d中如何设置2个摄像机,使游戏画面中同时出现2个场景,一个主场景,一个缩略图??的主要内容,如果未能解决你的问题,请参考以下文章

Unity3D_(游戏)甜品消消乐01_制作道具

unity打包windows多屏窗口位置

[Unity3D 版本5.X]实现一个跟随摄像机,聚焦到客户端主角身上

unity3d 摄像机拉太远影子看不见了,有没办法不受距离的影响?

Unity3D_(游戏)贪吃蛇

使用Unity3d实现2d游戏,有几种方式