内容不多,一个脚本,直接上代码

  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4.  
  5. public class Move : MonoBehaviour
  6. {
  7.  
  8. float speed = ;
  9. public float distance_v;
  10. public float distance_h;
  11. public float rotation_H_speed = ;
  12. public float rotation_V_speed = ;
  13. public float max_up_angle = ;              //越大,头抬得越高
  14.     public float max_down_angle = -;           //越小,头抬得越低
  15.  
  16.     private float current_rotation_H;  //水平旋转结果
  17.     private float current_rotation_V;  //垂直旋转结果
  18.     void LateUpdate()
  19. {
  20. // 旋转
  21. if (Input.GetMouseButton())
  22. {
  23. //控制旋转
  24. current_rotation_H += Input.GetAxis("Mouse X") * rotation_H_speed;
  25. current_rotation_V += Input.GetAxis("Mouse Y") * rotation_V_speed;
  26. //current_rotation_V = Mathf.Clamp(current_rotation_V, max_down_angle, max_up_angle); //限制垂直旋转角度
  27. transform.localEulerAngles = new Vector3(-current_rotation_V, current_rotation_H, 0f);
  28. transform.Translate(Vector3.back * distance_h, Space.Self);
  29. transform.Translate(Vector3.up * distance_v, Space.World);          //相对于世界坐标y轴向上
  30. }
  31.  
  32. // 平移
  33. if (Input.GetMouseButton())
  34. {
  35. this.transform.Translate(new Vector3(-Input.GetAxis("Mouse X") * rotation_H_speed, -Input.GetAxis("Mouse Y") * rotation_V_speed, 0f));
  36. }
  37. }
  38. // Use this for initialization
  39. void Start()
  40. {
  41.  
  42. }
  43.  
  44. // Update is called once per frame
  45. void Update()
  46. {
  47. // 移动
  48. if (Input.GetKey(KeyCode.A)) //左移
  49. {
  50. transform.Translate(Vector3.left * speed * Time.deltaTime);
  51. }
  52. if (Input.GetKey(KeyCode.D)) //右移
  53. {
  54. transform.Translate(Vector3.right * speed * Time.deltaTime);
  55.  
  56. }
  57. if (Input.GetKey(KeyCode.W)) //前移
  58. {
  59. transform.Translate(Vector3.forward * speed * Time.deltaTime);
  60.  
  61. }
  62. if (Input.GetKey(KeyCode.S)) //后移
  63. {
  64. transform.Translate(Vector3.back * speed * Time.deltaTime);
  65.  
  66. }
  67.  
  68. // 缩放
  69. if (Input.GetAxis("Mouse ScrollWheel") != )
  70. {
  71. //获取鼠标滚轮的滑动量
  72. float wheel = Input.GetAxis("Mouse ScrollWheel") * Time.deltaTime * ;
  73.  
  74. //改变相机的位置
  75. this.transform.Translate(Vector3.forward * wheel);
  76. }
  77. }
  78. }

Camera

Unity 相机平移、旋转、缩放的更多相关文章

  1. osg矩阵变换节点-----平移旋转缩放

    osg矩阵变换节点-----平移旋转缩放 转自:http://www.cnblogs.com/ylwn817/articles/1973396.html 平移旋转缩放这个三个是osg矩阵操作中,最常见 ...

  2. osg中使用MatrixTransform来实现模型的平移/旋转/缩放

    osg中使用MatrixTransform来实现模型的平移/旋转/缩放 转自:http://www.cnblogs.com/kekec/archive/2011/08/15/2139893.html# ...

  3. webgl学习笔记三-平移旋转缩放

    写在前面 建议先阅读下前面我的两篇文章. webgl学习笔记一-绘图单点 webgl学习笔记二-绘图多点 平移 1.关键点说明 顶点着色器需要加上 uniform vec4 u_Translation ...

  4. 【Qt官方例程学习笔记】Analog Clock Window Example (画笔的平移/旋转/缩放应用)

    这个例子演示了如何使用QPainter的转换和缩放特性来简化绘图. 值得学习的: 定时器事件ID检查: 在定时器事件中检查定时器id是比较好的实践. QPainter抗锯齿: We call QPai ...

  5. 【安卓】自己定义基于onDraw的随意动画(不不过平移/旋转/缩放/alpha)、!

    思路: 1.基于时间的显示映射.如:给定度数,显示圆弧,加上时序,就可以有圆弧动画的效果 2.给定时序. 用于驱动动画的一帧帧绘制 方案一.基于ObjectAnimator.动画运作时会调用degre ...

  6. 【Qt官方例程学习笔记】Raster Window Example(画笔的平移/旋转/缩放应用)

    这个例子显示了如何使用QPainter渲染一个简单的QWindow. 值得学习的内容 <QtGui>头文件 #include <QtGui>就可以使用Qt GUI模块中的所有类 ...

  7. ARFoundation - 实现物体旋转, 平移,缩放

    ARFoundation - 实现物体旋转, 平移,缩放 本文目的是为了确定在移动端怎样通过单指滑动实现物体的旋转,双指实现平移和缩放. 前提知识: ARFoundation - touch poin ...

  8. View的平移、缩放、旋转以及位置、坐标系

    原创 2015年05月12日 13:15:29 标签: Android / Scroll / Scale / Translation / Rotation 24733 Android开发中,经常会接触 ...

  9. 【C#/WPF】Image图片的Transform变换:平移、缩放、旋转

    WPF中图像控件Image的变换属性Transform: 平移 缩放 旋转 即要想实现图片的平移.缩放.旋转,是修改它所在的Image控件的Transform变换属性. 下面在XAML中定义了Imag ...

随机推荐

  1. vue实现tab选项卡切换

    上代码: <template>   <div class="push">     //点击按钮     <div class="tab&qu ...

  2. VBA自动点击IE的浏览按钮、自动选择路径、自动关闭打开文件对话框

    VBA调用InternetExplorer操作IE浏览器,自动弹出文件选择对话框时,VBA会处于阻塞状态,你必须手工关闭文件选择对话框,VBA才能继续向后运行. 例如下面网址,就有一个文件浏览按钮: ...

  3. Python的range(n)的用法

    Python的range(n) 方法就是: API定义: If you do need to iterate(迭代) over a sequence(一系列) of numbers, the buil ...

  4. ROS中的日志(log)消息

    学会使用日志(log)系统,做ROS大型项目的主治医生 通过显示进程的运行状态是好的习惯,但需要确定这样做不会影响到软件的运行效率和输出的清晰度.ROS 日志 (log) 系统的功能就是让进程生成一些 ...

  5. 吴裕雄--天生自然 R语言开发学习:R语言的简单介绍和使用

    假设我们正在研究生理发育问 题,并收集了10名婴儿在出生后一年内的月龄和体重数据(见表1-).我们感兴趣的是体重的分 布及体重和月龄的关系. 可以使用函数c()以向量的形式输入月龄和体重数据,此函 数 ...

  6. spring:事务的5大隔离级别,7大传播行为

    一.五大隔离级别 ISOLATION_READ_UNCOMMITTED:读未提交 ISOLATION_READ_COMMITTED:读已提交 ISOLATION_REPEATABLE_READ:可重复 ...

  7. Golang Slice 总结

    数组 Go的切片是在数组之上的抽象数据类型,因此在了解切片之前必须要要理解数组.数组类型由指定和长度和元素类型定义.数组不需要显式的初始化:数组元素会自动初始化为零值:Go的数组是值语义.一个数组变量 ...

  8. Hadoop伪分布式HDFS环境搭建和使用

    1.环境要求 Java版本不低于Hadoop要求,并配置环境变量 2.安装 1)在网站hadoop.apache.org下载稳定版本的Hadoop包 2)解压压缩包 检查Hadoop是否可用 hado ...

  9. SQL提高性能

    1.对外键建立索引,大数据量时性能提高明显(建索引可以直接[Merge Join],否则还须在查询时生成HASH表作[Hash Join]) 2.尽量少使用inner join,使用left join ...

  10. mvn测试常用命令

    -Dmaven.test.failure.ignore=true  测试报错忽略 例子: mvn package -DAPP_ENV=dev -Dmaven.test.failure.ignore=t ...