Unity3D中控制摄像机的问题
来源:互联网 发布:怎么投诉淘宝客服有用 编辑:程序博客网 时间:2024/04/29 08:58
那Unity3D中摄像机能有多少种用法呢?就小弟目前掌握的大概列举下:
1.静态的照射某个区域
2.第一人称跟随
3.第三人称跟随
4.通过滚轮来实现摄像机的拉远拉近效果
5.通过鼠标的左右滑动来实现摄像机在显示器上左右移动
6.在同一场景中多个摄像机切换的问题
1.第一种静态照射某个区域不用细说,在Scene视图中放置好摄像机的位置即可。
2.第一人称跟随,第三人称跟随在u3d中自带有脚本,如下图所示,只要把资源导入添加即可。
下面着重说下4,5,6点
3.通过滚轮来实现摄像机的拉远拉近效果
上代码
using UnityEngine;
using System.Collections;
public class camera : MonoBehaviour {
public float minFov = 15f;
public float maxFov = 90f;
public float sensitivity = 10f;
void Update()
{
float fov = Camera.main.fieldOfView;
fov += -Input.GetAxis("Mouse ScrollWheel") * sensitivity;
fov = Mathf.Clamp(fov, minFov, maxFov);
Camera.main.fieldOfView = fov;
}
}
Mathf.Clamp的作用是将fov的数值限定在minFov和maxFov之间。
Camera.main.fieldOfView是用来设置摄像机视野的大小
4.通过鼠标的左右滑动来实现摄像机在显示器上左右移动
using UnityEngine;
using System.Collections;
public class camera : MonoBehaviour
{
public float roate_Speed=2f;//旋转速度
void Update()
{
float mousX = Input.GetAxis("Mouse X") * roate_Speed;//得到鼠标移动距离
transform.Rotate(new Vector3(0, mousX, 0));
}
}
Input.GetAxis("Mouse X")得到鼠标移动的距离,只是这个数值比较小,所以增加一个roate_Speed
5.在同一场景中多个摄像机切换的问题
var camera1:GameObject;
var camera2:GameObject;
var camera3:GameObject;
function Update ()
{
if(Input.GetKeyUp(KeyCode.Alpha1))
{
onActiveFalse();
camera1.active=true;
}else if(Input.GetKeyUp(KeyCode.Alpha2))
{
onActiveFalse();
camera2.active=true;
}else if(Input.GetKeyUp(KeyCode.Alpha3))
{
onActiveFalse();
camera3.active=true;
}
}
function onActiveFalse()
{
camera1.active=false;
camera2.active=false;
camera3.active=false;
}
1.静态的照射某个区域
2.第一人称跟随
3.第三人称跟随
4.通过滚轮来实现摄像机的拉远拉近效果
5.通过鼠标的左右滑动来实现摄像机在显示器上左右移动
6.在同一场景中多个摄像机切换的问题
1.第一种静态照射某个区域不用细说,在Scene视图中放置好摄像机的位置即可。
2.第一人称跟随,第三人称跟随在u3d中自带有脚本,如下图所示,只要把资源导入添加即可。
下面着重说下4,5,6点
3.通过滚轮来实现摄像机的拉远拉近效果
上代码
using UnityEngine;
using System.Collections;
public class camera : MonoBehaviour {
public float minFov = 15f;
public float maxFov = 90f;
public float sensitivity = 10f;
void Update()
{
float fov = Camera.main.fieldOfView;
fov += -Input.GetAxis("Mouse ScrollWheel") * sensitivity;
fov = Mathf.Clamp(fov, minFov, maxFov);
Camera.main.fieldOfView = fov;
}
}
Mathf.Clamp的作用是将fov的数值限定在minFov和maxFov之间。
Camera.main.fieldOfView是用来设置摄像机视野的大小
4.通过鼠标的左右滑动来实现摄像机在显示器上左右移动
using UnityEngine;
using System.Collections;
public class camera : MonoBehaviour
{
public float roate_Speed=2f;//旋转速度
void Update()
{
float mousX = Input.GetAxis("Mouse X") * roate_Speed;//得到鼠标移动距离
transform.Rotate(new Vector3(0, mousX, 0));
}
}
Input.GetAxis("Mouse X")得到鼠标移动的距离,只是这个数值比较小,所以增加一个roate_Speed
5.在同一场景中多个摄像机切换的问题
var camera1:GameObject;
var camera2:GameObject;
var camera3:GameObject;
function Update ()
{
if(Input.GetKeyUp(KeyCode.Alpha1))
{
onActiveFalse();
camera1.active=true;
}else if(Input.GetKeyUp(KeyCode.Alpha2))
{
onActiveFalse();
camera2.active=true;
}else if(Input.GetKeyUp(KeyCode.Alpha3))
{
onActiveFalse();
camera3.active=true;
}
}
function onActiveFalse()
{
camera1.active=false;
camera2.active=false;
camera3.active=false;
}
0 0
- unity3D中控制摄像机的问题
- Unity3D中控制摄像机的问题
- unity3d中摄像机丢失的问题
- Unity3D中通过陀螺仪来控制摄像机的旋转
- Unity3d中摄像机控制脚本实现
- Unity3D中摄像机的用法
- unity3d摄像机控制
- unity3d 鼠标控制摄像机
- Unity3D摄像机高级控制
- unity3d中使用DoTween来控制2D摄像机视口的移动
- Unity3D入门(四):摄像机控制
- Unity3D入门(四):摄像机控制
- Unity3D 场景摄像机控制 插件包
- Unity3D引擎-摄像机控制CameraControl
- unity3d 摄像机跟随鼠标和键盘的控制
- Unity3D摄像机跟随物体移动的代码控制
- Unity3D【脚本】鼠标对摄像机的控制 - 点击鼠标,摄像机围绕圆心旋转
- Unity3D【脚本】鼠标对摄像机的控制 - 点击鼠标,摄像机围绕圆心旋转(第三次修改)
- 【iOS-iap防护】验证用户付费收据!拒绝iap Cracker!拒绝iap Free!让iphone越狱用户无从下手!【2012年5月2日更新防护iap Free的方法】
- BCM4352 linux 驱动安装
- 跟着鬼哥学PyQt Part.1
- LeetCode-3Sum
- 鸟哥的linux私房菜读书笔记----第三章 主机规划与磁盘分区
- Unity3D中控制摄像机的问题
- 设置VS"解决方案资源管理器"文件分目录显示
- 自顶向下的编程风格
- 用模板写冒泡排序-数组
- 酒桌规则
- Ubuntu12.04 的一些知识(2)
- Generation Language GL
- 什么是软件设计?
- JavaScript里面==和===以及!=和!===的区别