Unity学习笔记_控制人物移动+摄像机跟随
我想做的移动操作方式类似【流星蝴蝶剑】、【龙之谷】、【我的世界第三人称】的第三人称操作方式。
操作说明:W键会朝当前镜头方向前进,鼠标控制镜头旋转。
做前需知(先去稍微了解一下比较好):
①unity脚本的生命周期
②旋转的欧拉角和四元数
③简单三角函数知识
④Unity基本的API(比如this.transform.position为对象的(x,y,z)坐标)
第一步:创建一个脚本move,写上脚本,并赋予我的人物。

(注意:图片中的Parva是我给图片加的水印。)

第二步:给人物添加碰撞器和刚体,并把调整好角度的摄像机赋予人物的myCamera变量

第三步:WASD让人物动起来
先添加一个速度变量

写FixedUpdate()函数 代码意义都写在注释里了

演示一下,WASD控制人物移动

第四步:让镜头跟着人物移动
添加一个变量
Start()中添加
添加LateUpdate()函数

第五步:鼠标控制镜头围绕人物旋转
添加变量
修改LateUpdate()

第六步:WASD改变人物的朝向
在FixedUpdate()中添加代码

第七步:让人物朝当前镜头方向前进
添加变量
在LateUpdate()中添加
在FixedUpdate()中修改
在演示中,我单按住键盘的W键,并移动鼠标,人物就会朝着镜头旋转的方向前进。
而之前这样的操作呢,不管镜头怎么旋转,人物都是朝着世界的正Z轴方向前进。

第八步:让键盘控制的人物的朝向,相对于镜头角度进行改变
修改FixedUpdate()中的一行代码就行了

这样,人物的移动镜头操作就OK了。

Unity学习笔记_控制人物移动+摄像机跟随的更多相关文章
- jQuery源代码学习笔记_工具函数_noop/error/now/trim
jQuery源代码学习笔记_工具函数_noop/error/now/trim jquery提供了一系列的工具函数,用于支持其运行,今天主要分析noop/error/now/trim这4个函数: 1.n ...
- Unity3D学习笔记(九):摄像机
3D数学复习 using System.Collections; using System.Collections.Generic; using UnityEngine; public class w ...
- SSM框架学习笔记_第1章_SpringIOC概述
第1章 SpringIOC概述 Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架. 1.1 控制反转IOC IOC(inversion of controller)是一种概念 ...
- TCP/IP学习笔记17--TCP-- 窗口控制 重发控制 流控制
事业无穷年 -- 韩愈 利用窗口控制提高速度: TCP传输数据是,以一个段为单位(每次发送一个数据包),每发一个段需要一次确认应答,这样就难免存在这样的缺点:包的往返时间越长,通信性能就越低. 为解决 ...
- Python学习笔记_我的参考网址
Python学习笔记, 下面记录网上搜到的可参考的网址: 一.关于Tkinter 1.Python3中tkinter模块使用方法详解 https://blog.csdn.net/Fighting_Bo ...
- FFT和NTT学习笔记_基础
FFT和NTT学习笔记 算法导论 参考(贺) http://picks.logdown.com/posts/177631-fast-fourier-transform https://blog.csd ...
- .Net基础篇_学习笔记_第五天_流程控制while循环
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- 学习笔记_过滤器应用(粗粒度权限控制(拦截是否登录、拦截用户名admin权限))
RBAC ->基于角色的权限控制 l tb_user l tb_role l tb_userrole l tb_menu(增.删.改.查) l tb_rolemenu 1 说明 我们给 ...
- .Net基础篇_学习笔记_第五天_流程控制while循环003
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
随机推荐
- mysql基础篇--删除
语法 truncate table 表名; #清空整个表的数据 delete from 表名 where 筛选条件; #按筛选条件删除数据 /* delete和truncate的区别 delete可以 ...
- 谷歌浏览器不兼容的一些Js
这篇博文主要记录本人在实际应用中碰到的谷歌浏览器与一些Js不兼容的问题,随着时间的推移,这篇博文的内容可能越来越多,也可能一点也没有(我想那时候谷歌肯定是相当牛逼的). 1.谷歌浏览器不兼容docum ...
- 029_检测 MySQL 数据库连接数量
#!/bin/bash#本脚本每 2 秒检测一次 MySQL 并发连接数,可以将本脚本设置为开机启动脚本,或在特定时间段执行#以满足对 MySQL 数据库的监控需求,查看 MySQL 连接是否正常#本 ...
- 五十.KVM简介、 Virsh管理 、 自定义虚拟机、虚拟设备管理
1.virsh基本管理操作 列出当前正在运行的虚拟机 查看虚拟机的信息 管理虚拟机 设置虚拟机开机自动运行 1.1 virsh基本操作 查看kvm节点(服务器)信息 ] virsh nodei ...
- [UVa12345] Dynamic len (带 修 )
题意:有n个数编号从0→n-1,两种操作: Q L R:询问编号为L→R-1的数中共有多少种不同的数 M X Y:将编号为X的数改为Y ...
- python写爬虫遇到需要解码js一些记录
js在线格式化网站 https://beautifier.io/ Python 执行 JS 代码 NodeJS 安装方式 先解决 JS 环境,这里推荐安装 Node.js ,安装方便,执行效率也高. ...
- vue中父组件如何监听子组件值的变化
vue中我们会遇到很多父子组件通信的需求, 下面简单列一下,父子组件通信的几种情况 1:父组件向子组件传值:使用prop向子组件传值: 2:子组件实时监听父组件传来的值的变化:使用watch去监听父组 ...
- [2]windows内核情景分析--系统调用
Windows的地址空间分用户模式与内核模式,低2GB的部分叫用户模式,高2G的部分叫内核模式,位于用户空间的代码不能访问内核空间,位于内核空间的代码却可以访问用户空间 一个线程的运行状态分内核态与用 ...
- jmeter怎么上传图片
1.使用Fiddler抓取上传图片的接口地址,将地址接口按规定粘贴到Jmeter的HTTP请求内(复制粘贴注意空格)(我已经有HTTP默认请求页,所以这里不需要配置) 2.HTTP请求页选择[高级-客 ...
- UVALive 3716 DNA Regions ——(扫描法)
乍一看这个问题似乎是很复杂,但其实很好解决. 先处理出每个点到原点的距离和到x正半轴的角度(从x正半轴逆时针旋转的角度).然后以后者进行排序. 枚举每一个点到圆心的距离,作为半径,并找出其他到圆心距离 ...