Unity3D正常行走和飞行的实现
新建一个TestFlay.js脚本,内容如下:
var speed = 6.0;
var jumpSpeed = 8.0;
var gravity = 0;
private var moveDirection = Vector3.zero;
private var grounded : boolean = false;
function FixedUpdate() {
my=moveDirection.y;
moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
moveDirection = transform.TransformDirection(moveDirection);
if (grounded) {
moveDirection *= speed;
}
else {
moveDirection *= speed+transform.position.y/5;
moveDirection.y=my;
}
if(transform.position.y>=6){
if(Input.GetKey ("e")) {//按下e键向下飞行
transform.Translate(0, -1, 0);
}
}
if (Input.GetKey ("q") ) { //按下q键向上飞行
transform.Translate(0, 1, 0);
}
if(Input.GetKey("left shift")) {
speed=6*5;
} else {
speed=6;
}
moveDirection.y -= gravity * Time.deltaTime;
var controller : CharacterController = GetComponent(CharacterController);
var flags = controller.Move(moveDirection * Time.deltaTime);
grounded = (flags & CollisionFlags.CollidedBelow) != 0;
}
@script RequireComponent(CharacterController)
private var myWalker: FPSWalker=null;
var maxHeight: float=250;
function Start () {
myWalker = gameObject.GetComponent(FPSWalker);
}
@script RequireComponent(FPSWalker)
将它绑定到First Person Controller上,然后将前面的对勾勾掉。
再建一个脚本Fly.js,内容为:
var play:GameObject;
function Update () {
}
function OnGUI(){
if(GUI.Button(Rect(215,280,75,30),"Normal-Walk")){
play.GetComponent("FPSWalker").enabled = false;
play.GetComponent("TestFly").enabled = true;
}
if(GUI.Button(Rect(230,200,50,30),"Start-Fly")){
play.GetComponent("FPSWalker").enabled = true;
play.GetComponent("TestFly").enabled = false;
}
}
将其绑定到一个新建的GameObject上,运行即可看到效果。
转载于:https://www.cnblogs.com/Mygirl/archive/2011/04/02/2003105.html
Unity3D正常行走和飞行的实现相关推荐
- Unity3d触摸屏控制2D飞行射击类游戏角色
开始学习unity3d游戏制作. using UnityEngine;public class PlayerController : MonoBehaviour {/// <summary> ...
- Unity创建使用操纵杆飞行动画教程
Unity 3d移动超级英雄使用操纵杆飞行 MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz,2 Ch 语言:英语+中英文字幕(根据原英文字幕机译更准确) |时长:20节课 ...
- 装上螺旋桨,加州理工让只能行走的双足机器人「上了天」,还玩起了障碍滑板、走绳索...
视学算法报道 编辑:杜伟.陈萍 能走能飞,这才是最酷的双足机器人吧?! 有的机器人可以行走,有的可以飞行.你见过既能行走又能飞行的双足机器人吗? 加州理工学院的研究人员就打造了这样一台机器人 LEON ...
- 柯西飞行,瑞利飞行,莱维飞行,重尾分布、随机游走
柯西飞行 步长的概率分布是柯西分布的随机行走 瑞利飞行 步长的概率分布是正态分布的随机行走 莱维飞行 步长的概率分布是重尾分布的随机行走,在随机行走的过程中有相对较大的概率出现大跨步 重尾分布.长尾分 ...
- 3dmax批量导入obj_ArcGIS 与 3DMax 结合建模
整体技术思路是将项目区二维的CAD测绘底图,通过整理导入到3DMax中,根据CAD底图为基础,绘制三维数字模型.利用Photoshop 平面图像处理软件,对现场采集的照片进行修整,为三维模型制作表面贴 ...
- 3dmax导出glb格式_教你如何用ArcGIS 和 3DMax 建模,长知识
用精细的过程管理模式提供优质的服务 用先进的地理信息技术推动社会的发展 整体技术思路是将项目区二维的CAD测绘底图,通过整理导入到3DMax中,根据CAD底图为基础,绘制三维数字模型.利用Photos ...
- 【笨木头Unity】入门之旅002:不谈对象,咱们谈组件
今天有人问了一个一直以来都让我很纠结的问题:木头为什么长得这么帅?(小若:不就是一个瞎子随便问了个问题嘛,至于吗?) 这,大家以后别问我这个问题了,我真的不知道怎么回答,我尝试过很多变丑的方法,但是都 ...
- 视觉检测售价_机器人引导的视觉定位系统一般多少价格可靠?
机器视觉系统可以通过机器视觉产品,图像捕获设备将捕获的目标转换为图像信号,并将其发送到专用图像处理系统,以获得有关捕获的目标的形态信息. 工业机器人的3D视觉应用基于三角剖分原理,用户可以在制造过程中 ...
- 深度强化学习在机器人领域的研究与应用
前言 机器学习方法主要可以分为四类,监督学习.半监督学习.无监督学习.以及强化学习.其中,强化学习不同于连接主义的监督学习方法,是智能体通过与环境的交互,观测交互结果以及获得相应的回报.这种学习的方式 ...
最新文章
- Linux终端设备详解
- android4被淘汰,这五类安卓手机已经被淘汰,购买时别贪便宜,需慎重考虑!
- 模拟退火算法理论+Python解决函数极值+C++实现解决TSP问题
- oracle ocp笔记(1)
- 2019ICPC(沈阳) - Flowers(二分)
- VB自定义函数加 和 ;
- 如何手动创建SAP S/4HANA的生产订单
- CoreJava 笔记总结-第七章 异常,断言和日志
- 如何用chrome扩展将网页变成黑底白字,用以保护视力
- vue保存页面的值_vue前端页面跳转参数传递及存储
- go 模板(template)的常用基本语法
- java中关于x轴翻转和y轴翻转如何计算_如何用加速度计提高倾角测量精度?
- 机器学习-笔试题总结1
- 面向对象16:代码块、final关键字
- 大数据分析案例:电力窃漏电用户自动识别
- 2022-07-02 Android 进入app 后 距离传感器控制手机屏幕熄灭的方法-接近传感器Proximity Sensor的信号
- Jmockit使用详解之Mocking
- 数值计算(五)——函数逼近一致逼近多项式(1)
- 参考file-convert-util工具,实现doc,docx,html,md,pdf,png转换
- 2014年双11淘宝靠谱外贸原单店铺和天猫店铺推荐
热门文章
- 项目怎么部署到服务器上_项目开发学习 云服务器的部署
- KubeVela 正式开源:一个高可扩展的云原生应用平台与核心引擎
- 1t硬盘怎么分区最好_网友问题解答:?最简单的方法教你电脑硬盘怎么分区?
- csgo陀螺仪是什么意思_CSGO:起源2将在五月中旬推出?B5无意间透露出这个消息...
- 浏览器阻挡cookies_解决WordPress登录提示”Cookies被阻止或者您的浏览器不支持”...
- lombok链式调用_记一次使用 Lombok 翻车造成的事故!
- 3 域名正则_一个正则表达式怎么会引起线上CPU狂飙?
- 机器视觉:面阵相机的传感器类型及实际应用分析
- Python使用openpyxl读写excel文件
- 全球及中国水彩调色板行业销售前景与投资商机研究报告2022版