Unity3D 学习教程 14 C# 旋转镜头
if(Input.GetKey(KeyCode.Q))
{
transform.Rotate(0,-50*Time.deltaTime,0,Space.Self);
}
if(Input.GetKey(KeyCode.E))
{
transform.Rotate(0,50*Time.deltaTime,0,Space.Self);
}
模仿WOW镜头操作
- using UnityEngine;
- using System.Collections;
- ///
- /// 将此脚本附加到任意镜头上,可以使其拥有WOW镜头的控制方式
- ///
- public class WowCamera : MonoBehaviour
- {
- ///
- /// 镜头目标
- ///
- public Transform Target;
- ///
- /// 镜头离目标的距离
- ///
- public float Distance = 30.0f;
- ///
- /// 最大镜头距离
- ///
- public float MaxDistance = 30.0f;
- ///
- /// 鼠标滚轮拉近拉远速度系数
- ///
- public float ScrollFactor = 10.0f;
- ///
- /// 镜头旋转速度比率
- ///
- public float RotateFactor = 10.0f;
- ///
- /// 镜头水平环绕角度
- ///
- public float HorizontalAngle = 45;
- ///
- /// 镜头竖直环绕角度
- ///
- public float VerticalAngle = 0;
- private Transform mCameraTransform;
- void Start()
- {
- mCameraTransform = transform;
- }
- void Update()
- {
- //滚轮向前:拉近距离;滚轮向后:拉远距离
- var scrollAmount = Input.GetAxis(GameSetting.MouseScrollWheel);
- Distance -= scrollAmount * ScrollFactor;
- //保证镜头距离合法
- if (Distance < 0)
- Distance = 0;
- else if (Distance > MaxDistance)
- Distance = MaxDistance;
- //按住鼠标左右键移动,镜头随之旋转
- var isMouseLeftButtonDown = Input.GetMouseButton(0);
- var isMouseRightButtonDown = Input.GetMouseButton(1);
- if (isMouseLeftButtonDown || isMouseRightButtonDown)
- {
- Screen.lockCursor = true;
- var axisX = Input.GetAxis(GameSetting.MouseX);
- var axisY = Input.GetAxis(GameSetting.MouseY);
- HorizontalAngle += axisX * RotateFactor;
- VerticalAngle += axisY * RotateFactor;
- if (isMouseRightButtonDown)
- {
- //如果是鼠标右键移动,则旋转人物在水平面上与镜头方向一致
- Target.rotation = Quaternion.Euler(0, HorizontalAngle, 0);
- }
- }
- else
- {
- Screen.lockCursor = false;
- }
- //按镜头距离调整位置和方向
- var rotation = Quaternion.Euler(-VerticalAngle, HorizontalAngle, 0);
- var offset = rotation * Vector3.back * Distance;
- mCameraTransform.position = Target.position + offset;
- mCameraTransform.rotation = rotation;
- }
- }
转载于:https://www.cnblogs.com/goodchenqing/p/4268675.html
Unity3D 学习教程 14 C# 旋转镜头相关推荐
- 【Metashape精品教程14】五镜头倾斜数据空三 空三成果导入CC
[Metashape精品教程14]五镜头倾斜数据空三 空三成果导入CC 文章目录 [Metashape精品教程14]五镜头倾斜数据空三 空三成果导入CC 前言 一.创建工程 1.1导入照片 1.2设置 ...
- Unity3D 学习教程 4 创建物体
点击红线部分 创建一个物体 创建一个立方体 ------------------------------------------效果---------------------------------- ...
- 迷你MVVM框架 avalonjs 学习教程14、事件绑定
之前的章节许多示例代码也或多或少地展示了如何使用ms-click来绑定事件了.能直接在模板上绑定是事件,这也是静态模板与动态绑定的一大区别.ms-click不是简单的onclick的别名,它在内部屏蔽 ...
- CityMaker学习教程14 水面图层的创建
在CityMaker中,图层的创建稍显麻烦,现在讲下如何创建水面层. 1.打开Builder并创建一个空的场景. 2.创建一个空的数据源或者选择一个没加载的数据源. 3.右键数据源,创建个数据集,或者 ...
- 深度学习教程(10) | 卷积神经网络解读(吴恩达·完整版)
作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/35 本文地址:http://www.showmeai.tech/article-det ...
- 深度学习教程(6) | 神经网络优化算法(吴恩达·完整版)
作者:韩信子@ShowMeAI 教程地址:https://www.showmeai.tech/tutorials/35 本文地址:https://www.showmeai.tech/article-d ...
- 【Unity3D基础教程】给初学者看的Unity教程(零):如何学习Unity3D
转自:https://www.cnblogs.com/neverdie/p/How_To_Learn_Unity3D.html(http://www.cnblogs.com/neverdie/) Un ...
- oracle安装搜狗输入法教程,Linux入门学习教程:在Ubuntu 14.04中安装使用搜狗拼音输入法...
然后,访问搜狗输入法Linux版的官网,http://pinyin.sogou.com/linux,下载搜狗输入法Linux版.从官网可以看到,该输入法官方只支持Ubuntu(不过网上有人通过将deb ...
- UE5和Blender中的完整场景环境创建学习教程
UE5和Blender中的完整环境创建–深入课程 MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz,2 Ch 语言:英语+中英文字幕(根据原英文字幕机译更准确)|时长:80 ...
最新文章
- 解决: is not accessible from java.lang.Class android.app.AppComponentFactory
- ORACAL去除表中null转化为0
- 35佳国外顶级品牌企业网站设计案例(上)
- SSH远程联机Linux服务器简易安全设定
- csv处理数据后存入数据库
- 表、栈和队列(JAVA实现)
- T3 - 构建大型 Web 应用的 JavaScript 框架
- 网站COM组件调用失败解决办法
- 计算机触摸板设置方法,笔记本的触摸板怎么用_笔记本电脑触摸板的使用教程-win7之家...
- FlashFXP,FlashFXP的详细介绍
- 边境的悍匪—机器学习实战:第七章 集成学习和随机森林
- PR视频去水印—中间值
- 蓝奏云分享文件无法下载地址失效的解决办法
- 干了这碗蛋炒饭 继续APP性能提升
- js如何将时间的标准格式和时间戳格式和2022-01-27 00:00:00(年月日时分秒)格式相互转换
- Category的底层分析
- python数组展示_python 显示数组全部元素的方法
- 关于信息熵最大值的讨论
- 《我是一只IT小小鸟》读书笔记3
- 供销合作社改革聚合力 国稻种芯-兰州榆中:构建现代流通体系
热门文章
- Netty工作笔记0016---Buffer的分散和聚合
- Netty工作笔记0011---Channel应用案例2
- SpringCloud工作笔记052---SpringCloud打包部署流程_打包时报错: BeanCreationNotAllowedException: Error creating bean w
- 2015年3月31号日志
- 【JAVA基础】HashSet、LinkedHashSet、TreeSet使用区别
- IOS div上下滑动效果
- fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC sha
- 3d激光雷达开发(基于参数模型的滤波)
- 嵌入式操作系统内核原理和开发(通用优先级调度)
- 一步一步写算法(之排序二叉树删除-3)