unity CharactorController下Move()官方示例下跳跃时主角无法移动操作问题。


 public float speed = 6.0F;
    public float jumpSpeed = 8.0F;
    public float gravity = 20.0F;
    private Vector3 moveDirection = Vector3.zero;
void Update() {
        CharacterController controller = GetComponent<CharacterController>();
        if (controller.isGrounded) {
            moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
            moveDirection = transform.TransformDirection(moveDirection);
            moveDirection *= speed;
            if (Input.GetButton("Jump"))
                moveDirection.y = jumpSpeed;

        }
        moveDirection.y -= gravity * Time.deltaTime;
        controller.Move(moveDirection * Time.deltaTime);
    }

上面是官方给出的例子,由于检测移动是只能在地面上才能用,所以要将检测移动的代码移出至判定外。 但是将判定位移移出后Y轴将会一直为0,所以需要定义一个变量用来计算当前Y轴方向速度。

修改后代码:

 public float speed = 6.0F;
    public float jumpSpeed = 8.0F;
    public float gravity = 20.0F;   public float verVel  = 0;                    //vertical velocity
    private Vector3 moveDirection = Vector3.zero;
void Update() {
        CharacterController controller = GetComponent<CharacterController>();

      moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));      moveDirection = transform.TransformDirection(moveDirection);        moveDirection *= speed;
        if (controller.isGrounded) {
          if (Input.GetButton("Jump"))
               moveDirection.y = jumpSpeed;
        }        verVel = -= gravity * Time.deltaTime;
        moveDirection.y = verVel;
        controller.Move(moveDirection * Time.deltaTime);
    }

原创:http://www.cnblogs.com/m-f-s/

时间: 2024-11-18 23:46:51

unity CharactorController下Move()官方示例下跳跃时主角无法移动操作问题。的相关文章

微信小程序「官方示例代码」剖析【下】:运行机制

在上一篇<微信小程序「官方示例代码」浅析[上]>中,我们只是简单的罗列了一下代码,这一篇,让我们来玩点刺激的--就是看看IDE的代码,了解它是怎么运行的. 还好微信的开发团队在软件工程的实践还有待提高,我们才有机会可以深入了解他们的代码--真想建议他们看看Growth的第二部分,构建系统. 解压应用 首先你需要有下面的工具啦 Mac电脑 微信web开发者工具.app WebStorm / 其他编程器 或 IDE,最好可以支持重命名 首先,我们需要右键微信web开发者工具.app,然后显示包的内

示例-下拉菜单-选择颜色

1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="

Bootstrap 3 &amp; 4 的多级下拉菜单示例

Bootstrap 虽好,但对于复杂的界面,还是有N多组件需要自己扩展,并且要往简洁.大气的Bootstrap界面上靠,着实要费一些功夫.下面分享一个Bootstrap 3的多级下拉菜单,无需第三方Js脚本,复制后直接可用. Bootstrap 3 的多级下拉菜单示例 <!DOCTYPE HTML> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title&

html5游戏引擎phaser官方示例学习

首发:个人博客,更新&纠错&回复 phaser官方示例学习进行中,把官方示例调整为简明的目录结构,学习过程中加了点中文注释,代码在这里. 目前把官方的完整游戏示例看了一大半, breakout是敲砖块,gemmatch是钻石消除,invaders是小蜜蜂,matching是配对,simon是记忆游戏,sliding是拼图,starstruck类似超级马里奥,tanks是坦克游戏. 游戏场面上看,敲砖块.小蜜蜂是竖版,超级马里奥是横版,坦克游戏是俯瞰,钻石.配对.记忆.拼图这四个都是棋盘.

DotNetBar for Windows Forms 12.7.0.10_冰河之刃重打包版原创发布-带官方示例程序版

关于 DotNetBar for Windows Forms 12.7.0.10_冰河之刃重打包版 --------------------11.8.0.8_冰河之刃重打包版---------------------------------------------------------基于 官方原版的安装包 + http://www.cnblogs.com/tracky 提供的补丁DLL制作而成.安装之后,直接就可以用了.省心省事.不必再单独的打一次补丁包了.本安装包和补丁包一样都删除了官方自

DotNetBar for Windows Forms 12.5.0.2_冰河之刃重打包版原创发布-带官方示例程序版

关于 DotNetBar for Windows Forms 12.5.0.2_冰河之刃重打包版 --------------------11.8.0.8_冰河之刃重打包版--------------------------------------------------------- 基于 官方原版的安装包 + http://www.cnblogs.com/tracky 提供的补丁DLL制作而成. 安装之后,直接就可以用了. 省心省事.不必再单独的打一次补丁包了. 本安装包和补丁包一样都删除了

DotNetBar for Windows Forms 12.2.0.7_冰河之刃重打包版原创发布-带官方示例程序版

关于 DotNetBar for Windows Forms 12.2.0.7_冰河之刃重打包版 --------------------11.8.0.8_冰河之刃重打包版---------------------------------------------------------基于 官方原版的安装包 + http://www.cnblogs.com/tracky 提供的补丁DLL制作而成.安装之后,直接就可以用了.省心省事.不必再单独的打一次补丁包了.本安装包和补丁包一样都删除了官方自带

IE下及标准浏览器下的图片旋转(一)——滤镜,CSS3

关于图片的旋转,一般来说有3种解决方案:(1)滤镜 (2)css3 (3)canvas.接下来逐一讲解. 为了方便理解,我们主要以90度整倍数讲解,兼顾其他角度. 1. 滤镜(IE专属) 1.1 旋转滤镜 语法如下: filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=i); rotation取值0(0或360度),1(90度),2(180度),3(270度).取其他数无效. 旋转90度示例: css: #box {     

ServiceStack 项目实例 006 通过官方示例总结的项目结构方案

研读了官方示例的ServiceStack.Examples 和 ServiceStack.Northwind,总结如下的项目方案结构,这种方式比较适合较大的项目,并且规范化很好,易于扩展和对接. 项目结构规范要求 根据ServiceStack官方示例项目,总结出如下项目规范: 项目目录结构,以产品管理模块示例: 需要建立三个项目: >> Product.Web >> Product.ServiceInterface >> Product.ServiceModel 1 对