unity 控制对象移动、旋转
- W/S :: 前进/后退
- A/D :: 下降/上升
- 鼠标滚轮 :: 对象移动的速度
- 光标水平移动 :: 对象左右方向旋转
- 光标上下移动 :: 对象上下方向旋转
using UnityEngine;
using System.Collections;public class ObjectController : MonoBehaviour
{// x方向移动的速度public float xSpeed = 1f;// y方向移动的速度public float ySpeed = 1f;// z方向移动的速度public float zSpeed = 1f;public Vector3 velocity = Vector3.zero;// 是否按下A键private bool isAdown = false;// 是否按下D键private bool isDdown = false;private float x = 0.0f;private float y = 0.0f;void Update(){float theZ = Input.GetAxis("Vertical") * this.zSpeed;float theX = Input.GetAxis("Horizontal") * this.xSpeed;// 设置位移Vector3 v1 = new Vector3(0, 0, theZ);v1 = this.transform.TransformDirection(v1);v1 = v1 - Vector3.Dot(v1, Vector3.up) * Vector3.up;v1 = this.transform.InverseTransformDirection(v1);this.transform.Translate(v1);// 设置旋转角度Vector3 v2 = new Vector3(0, theX, 0);this.transform.Rotate(v2);if (Input.GetKeyDown(KeyCode.A))this.isAdown = true;else if (Input.GetKeyUp(KeyCode.A))this.isAdown = false;else if (Input.GetKeyUp(KeyCode.D))this.isDdown = false;else if (Input.GetKeyDown(KeyCode.D))this.isDdown = true;if (this.isAdown)this.transform.position = Vector3.SmoothDamp(this.transform.position, this.transform.position - new Vector3(0, this.ySpeed, 0), ref velocity, 0.1f);if (this.isDdown)this.transform.position = Vector3.SmoothDamp(this.transform.position, this.transform.position + new Vector3(0, this.ySpeed, 0), ref velocity, 0.1f);float zoom = Input.GetAxis("Mouse ScrollWheel");if (this.zSpeed + zoom < 10 && this.zSpeed + zoom > 0.1)this.zSpeed += zoom;}private void Rotate(){this.x += Input.GetAxis("Mouse X") * this.xSpeed;this.y -= Input.GetAxis("Mouse Y") * this.ySpeed;if (this.y < -360f)this.y += 360f;if (this.y > 360f)this.y -= 360f;y = Mathf.Clamp(y, -20f, 80f);Quaternion rotation = Quaternion.Euler(y * 0.5f, x, 0);this.transform.rotation = rotation;}private void LateUpdate(){Rotate();}
}
unity 控制对象移动、旋转相关推荐
- Unity摄像机对象锁定旋转运镜模拟
问题简述 在3D模式下如何模拟实现Unity摄像机对象锁定旋转运镜,可以分为两个部分,第一是实现对象锁定,第二是实现旋转运镜.对象锁定就是无论摄像机如何运动,始终保持对象位于摄像机成像区域的固定位置, ...
- fabricjs 围绕对象中心点旋转
先吐槽一下现在网上搜索的东西,莆田货先不说,牛鬼蛇神,各显神通,要么是千篇一律.答非所问,要么是无人善后的半吊子回答,再要么是上个世纪的古董玩意儿,这样让我们这些面向百度编程的人很难办啊! 围绕左上角 ...
- Unity 触屏手势控制Camera平移旋转缩放
Unity 触屏手势控制Camera平移旋转缩放 实现思路 单点触屏,位移增量控制相机平移: 两点触屏,两点位移控制相机前后移动(缩放):两点中一点不位移控制相机绕点旋转: 实现需要的API Touc ...
- Unity 用于控制摄像机的旋转、远近
/// <summary> /// 用于控制摄像机的旋转.远近 /// </summary> public class CameraTransform : MonoBehavi ...
- Unity手势控制物体球形旋转
目的:当我想让物体绕Y轴旋转时,无论他当前的朝向都可以绕绝对Y轴转,同理X轴,Z轴.同时不可以有万向锁. 原理:当我们物体绕轴旋转时,其实是矩阵相乘,所以我们需要先算出当前要旋转角度的旋转矩阵,代码如 ...
- 【虚拟仿真】Unity3D中实现控制物体的旋转、移动、缩放
推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦. 一.前言 ...
- Unity的对象复用
2019独角兽企业重金招聘Python工程师标准>>> 对象复用是 用空间换时间的一种典型的做法,对于Unity来说虽然引擎内部有GameObject的对象池,但是 这只是Nativ ...
- matlab学习笔记9 高级绘图命令_2 图形的高级控制_视点控制和图形旋转_色图和颜色映像_光照和着色
一起来学matlab-matlab学习笔记9 高级绘图命令_2 图形的高级控制_视点控制和图形旋转_色图和颜色映像_光照和着色 觉得有用的话,欢迎一起讨论相互学习~ 参考书籍 <matlab 程 ...
- Unity 相机围绕目标旋转、缩放功能实现
Unity 相机围绕目标旋转.缩放功能实现 //************************************************相机围绕物体旋转.相机缩放*************** ...
- Unity 控制摄像机移动
Unity 控制摄像机移动 控制摄像机移动 1.摄像机围绕某一固定点移动(旋转) 2.摄像机无需围绕某一固定点移动 3.摄像机先后显示问题 控制摄像机移动 控制摄像机移动目前我接触到的有两种方式,一种 ...
最新文章
- python游戏中调整箭头下落速度_入门 | 三行Python代码,让数据预处理速度提高2到6倍...
- cpu,内存,虚拟内存,硬盘,缓存之间是什么关系??
- python编程和plc哪个好-plc和python
- Android Telephony分析(五) ---- TelephonyRegistry详解
- 【图文详解】JAVA中的转义字符
- 五子棋项目结束总结_居家活动系列总结
- spring boot 相关注解
- cocos2dx实现翻书效果。
- php源码 自定义字段,wordpress主题制作:设置自定义选项字段
- 装机必备:借用IDM实现百度云高速下载
- 感动的要哭了(不得不看)
- LABVIEW宝典(第2版)简版电子书出炉了,需要赶紧下
- 微信红包发送关键代码
- OBJ 模型文件与MTL材质文件 介绍
- tiny6410烧录
- webpack2系列step1--HTML
- todd li 保留_用Todd Motto对JavaScript进行解密
- c语言抛物线弓形图像,行列式计算(C#)
- 自制图像标注软件 —— 支持mask-rcnn等算法
- HTML+CSS实现网页分页页码