Unity 摄像机组件

今天看一下unity3d里面的摄像机是怎么调用和操作的。

 

打开unity3d新建一个工程。在我们打开工程的时候unity3d会主动添加一个Main Camera,在Hierartchy视图中。点击Main Camera在Inspector中出现Main Camera的组件信息。如图

 

1.jpg

 


在camera组件中可以对是相机的一些属性进行调节。

Clera Flags:清除标记。下拉菜单一共有4个选项。


2.jpg 

Skybox:天空盒,背景显示天空盒。如果该相机没有添加天空和则显示背景颜色。Solid Color:纯色,背景显示我没在Background中调制的颜射。Depth Only :仅深度不显示任何背景。空白处为透明。Don't Clear :不清除,每帧绘制在下一帧之上,造成涂片效果。一般很少用到。

 

Background :背景颜色。

 

Culling Mask :剔除遮罩,通过标签来选择物体是否被相机渲染。

 

Projection:相机类型,分为透视相机和正交相机。


3.jpg 

perspective:透视相机。

 

Orthographic:正交相机。

 

区别如图:


4.jpg 

5.jpg 

透视效果

正交效果

 

当我们选择perspective是Field of view:视野范围,调节摄像机的视野。

 

当我们选择Orthographic是size:设置正交相机的视口大小。

 

Clipping Planes :Near为近距裁剪,Far为远距裁剪。

 

Normalized View Port Rect:用四个数值来表示这个相机的视图将绘制在屏幕的什么地方,使用屏幕坐标系(值0-1)。(注:屏幕坐标系的0,0点是在屏幕的左下角的)

 

在unity中做屏幕的分屏用到的就是这个参数。

 

举个例子说明一下分屏的方法:

 

首先创建一部相机。


6.jpg 

将Main Camera相机的NormalizedView Port Rect属性里的x:0,y:0.5,w:1,h:0.5。

意思是是相机显示的坐标为(0,0.5)宽度为1,高度为0.5。

 

将新添加的Camera的Normalized ViewPort Rect属性里的x:0,y:0,w:1,h:0.5。

 

意思是是相机显示的坐标为(0,0.5)宽度为1,高度为0.5。

 

Game视图将显示如下结果


7.jpg 

Depth :深度,用来确定不同相机的绘制顺序。具有较大值的相机将被绘制在具有较小值的相机的上面。

 

Rendering Path:渲染路径,下面有四个选项Use Player Settings:使用播放器设置。Vertex Lit :顶点光照。Forward :快速渲染。Deferred Lighting: 延迟照明。根据项目需求选择相应的渲染路径。

 

Target Texture 目标纹理,它将放置相机的视图到一个纹理上,该纹理可以被应用到另一个对象。这使得它可以方便地创建体育场大屏幕、监控摄像机、倒影等等效果。

 

Flare Layer:光晕层,让镜头光晕(LensFlares ) 出现在图像中。默认情况下,相机已经贴上光晕层(FlareLayer)。

 

GUI Layer:用户界面层,使二维图形用户界面可以渲染。在检视面板点击GUI层(GUI Layer)的复选框,可以启用和禁用在相机绘制GUI。

 

Audio Listener:音频侦听器,音频监听器扮演着像麦克风这样的设备。它接收任何在场景输入的音频源(AudioSource),并通过计算机的扬声器播放声音。

 

这样一部摄像机的基本属性已经介绍完了。下面我们看下怎么给场景添加天空盒。

 

第一步:选择相机,点击菜单栏中的component->Rendering->Skybox.


8.jpg 

然后在Inspector视图最下面多了一栏Skybox。

 

9.jpg

 

 

然后给他添加一个天空球。天空球的制作方法,

 

一:新建一个材质球


10.jpg 

选择新建的材质球,命名为skybox1,如图所示将材质设置为Skybox类型的。

11.jpg 

结果如图:

12.jpg 

在相应的地方添加相应的图片。这样一个天空球就制作完成了。

还有一个简单方法就是导入unity3d自带的资源里面有自作完成的天空球。

 

(注:自己制作天空球是要注意图片的属性 Wrap Mode属性

 

13.jpg

 


应改为Clamp格式,否则会出现接缝。)

将天空球制作完毕后添加的摄像机上,如图:

 

14.jpg

 


下面我们来看下怎么实现两个相机的动态切换。

首先我们在unity中创建两个相机。分别为camera0,camera1.

 

创建一个js脚本文件。写入一下代码。

 

  1. var camera0 : Camera; //定义一个名字为camera0的相机对象 
  2. var camera1 :Camera; //定义一个名字为camera1的相机对象
  3. function Update () 
  4. if (Input.GetKey("1")) //如果敲击键盘的"1" 
  5. camera1.enabled = true; //camera1激活 
  6. camera0.enabled = false; //camera1停止 
  7. if (Input.GetKey ("0")) //如果敲击键盘的"0" 
  8. camera1.enabled = false; //camera1停止 
  9. camera0.enabled = true; //camera1激活 
  10. }
复制代码


将脚本添加到一个游戏物体上运行游戏。敲击键盘的1和0键。检测代码。

转载于:https://www.cnblogs.com/zdBingo/p/4261949.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unity摄像机旋转是通过修改摄像机的旋转属性来实现的。在Unity摄像机的旋转属性由三个欧拉角表示:pitch(俯仰角),yaw(偏航角)和roll(翻滚角)。 你可以通过以下步骤来实现摄像机的旋转: 1. 获取摄像机组件:首先,你需要获取场景摄像机对象,并通过代码获取摄像机组件。 2. 修改摄像机旋转属性:根据你想要的旋转效果,修改摄像机的pitch、yaw和roll属性。例如,如果你想让摄像机绕Y轴旋转,可以修改yaw属性。 3. 应用旋转:将修改后的摄像机旋转属性应用到摄像机组件上。可以使用Transform组件提供的Rotate函数来实现旋转。 下面是一个简单的示例代码,演示了如何实现摄像机的旋转: ```csharp using UnityEngine; public class CameraRotation : MonoBehaviour { public float rotationSpeed = 10f; void Update() { // 获取摄像机组件 Camera camera = GetComponent<Camera>(); // 按下鼠标左键进行旋转 if (Input.GetMouseButton(0)) { // 获取鼠标在屏幕上的移动距离 float mouseX = Input.GetAxis("Mouse X"); // 修改摄像机的yaw属性 Vector3 rotation = new Vector3(0f, mouseX * rotationSpeed, 0f); camera.transform.Rotate(rotation); } } } ``` 上述示例代码将允许你使用鼠标的水平移动来控制摄像机围绕Y轴旋转。你可以根据自己的需求修改旋转速度和旋转的方向。同时,你还可以探索其他旋转方法,例如绕X和Z轴旋转,或者使用Quaternion来实现更复杂的旋转效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值