一、Character Control非刚体
1、场景初始化,注意调整CC的轴心,不需要碰撞,且删除CC子物体的碰撞。
2、移动:
       获取X,Z轴变化,定义变量h,v;
       定义移动的速度speed;
       定义跳跃的高度highjump;
       因为非刚体,所以需要自定义重力,gravity,通常大于highjump;
       定义CC的实体对象用于获取物体的CC组件;
       定义移动的三维向量moveDirection;
       定义用于落地判定的三维向量colextents;
3、视角观察与摄像机旋转:
       定义摄像机实体对象,用于获取摄像机物体;
       定义旋转速率:rspeed;
4、事件响应:
     移动和跳跃都是物理行为,在FixedUpdate事件中实现动作
     h,v获取键盘水平和垂直输入——判断是否着地(射线方法或者cc自带)——获取移动向量——判断是否在移动,是否在跳跃(水平或者垂直变量不为0,空格键输入)——三维移动向量乘以速度,三维向量的Y轴赋值highjump;
     调用CC的move方法,参数是三维移动向量乘帧速率(获得每秒移动速度)。
5、Unity的CC落地bug,
    使用自定义重力赋值三维向量的Y轴:moveDirect.y -= gravity * Time.deltaTime;
6、射线判断落地:
        Ray ray = new Ray(this.transform.position + Vector3.up * 2 * colExtents.x, Vector3.down);
        return Physics.SphereCast(ray, colExtents.x, colExtents.x + 0.2f);   
7、鼠标控制旋转是二维的
如何确定鼠标控制物体旋转的坐标系,可以参考unity Scene场景中鼠标右键移动,观察坐标系移动。
为什么transform.collider没有bounds?collision.collider有bounds属性?
8、旋转后,物体的前方与移动方向同步
Vector3 forward = transform.TransformDirection(Vector3.forward)
世界坐标系与自身坐标系的转换。

U3D学习09-物体简单控制及视角观察的更多相关文章

  1. Python+selenium测试环境成功搭建,简单控制浏览器(firefox)接下来,继续学习其他浏览器上的测试环境搭建;学习Python语言,利用Python语言来写测试用例。加油!!!

    Python+selenium测试环境成功搭建,简单控制浏览器(firefox)接下来,继续学习其他浏览器上的测试环境搭建:学习Python语言,利用Python语言来写测试用例.加油!!!

  2. Unity模拟龙之谷人物行走简单控制

    我个人挺喜欢龙之谷(DN)的人物控制的(不是广告哈....),就是人物太萌了一点,动作.打击感都挺好的. 今天用Unity简单模仿了一下DN的人物控制,当然,游戏里面动作非常多,我这里仅仅做了简单的w ...

  3. 手把手教你用深度学习做物体检测(五):YOLOv1介绍

    "之前写物体检测系列文章的时候说过,关于YOLO算法,会在后续的文章中介绍,然而,由于YOLO历经3个版本,其论文也有3篇,想全面的讲述清楚还是太难了,本周终于能够抽出时间写一些YOLO算法 ...

  4. JavaScript学习09 函数本质及Function对象深入探索

    JavaScript学习09 函数本质及Function对象深入探索 在JavaScript中,函数function就是对象. JS中没有方法重载 在JavaScript中,没有方法(函数)重载的概念 ...

  5. 【Unity3D】使用鼠标键盘控制Camera视角(即时战略类游戏视角):缩近,拉远,旋转

    今天写一个demo,要用到鼠标键盘控制三维视角,因此写了个脚本用于控制. 该脚本可以用于即时战略类游戏的视角,提供了缩进,拉伸,旋转.同时按住鼠标右键不放,移动鼠标可以实现第一人称视角的效果. usi ...

  6. OSG模型简单控制

    OSG模型简单控制 转自:http://milkcu.sintune.net/blog/archives/1392673560.html 结点基本操作 添加结点 OSG中使用osg::Node和osg ...

  7. JSP学习笔记(三):简单的Tomcat Web服务器

    注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...

  8. ThinkPhp学习09

    原文:ThinkPhp学习09 三.区间查询 $data['id']=array(array('gt',4),array('lt',10));//默认关系是 and 的关系 //SELECT * FR ...

  9. Hibernate二次学习一----------Hibernate简单搭建

    因为博客园自带的markdown不太好用,因此所有markdown笔记都使用cmd_markdown发布 Hibernate二次学习一----------Hibernate简单搭建: https:// ...

随机推荐

  1. C#获取当前路径的七种方法 【转载】

    //1.获取模块的完整路径. string path1 = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName; // ...

  2. redis quick start

    软件: redis server https://github.com/MicrosoftArchive/redis/releases redis python client, install usi ...

  3. oracle之 反向键索引

    反向键索引是一种B-tree索引,它在保持列顺序的同时,物理地改变每个索引键的字节(反向键索引除了ROWID和still之外,反转每个索引列的字节).例如,如果索引键为20,如果在十六进制中存储为这个 ...

  4. PHP 对象转数组 Object转array

    //调用这个函数,将其幻化为数组,然后取出对应值 public static function object_array($array) { if(is_object($array)) { $arra ...

  5. java (图片转PDF)

    1.导入jar包 itextpdf-5.5.12.jar 2.写代码 package com.util; import java.io.File; import java.io.FileNotFoun ...

  6. Eclipse各个版本及其对应代号、下载地址列表

    版本号 代码 日期 下载地址 Eclipse 3.1 IO[木卫一,伊奥] 2005 http://archive.eclipse.org/eclipse/downloads/drops/R-3.1- ...

  7. JavaMail SMTP服务器发送邮件程序示例 java通过dns服务器解析ip地址

    /** * JavaMail SMTP服务器发送邮件程序示例 * 扮演SMTP服务器角色与邮件客户端软件最大的区别就是: * SMTP服务器需要解析不同接收人邮件地址主机名对应的SMTP服务器主机名 ...

  8. LNMP, CentOS7.0+Nginx+Mysql5.7+PHP7环境安装

    LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构.这里和家分享一下,如何在CentOS 7.0上搭建一个这样的环境,其中软件使用yum方式安装. 进入CentOS ...

  9. PHP 解压 ZIP 文件到指定文件夹

    本类实现参考 php manual 评论 [php] view plain copy /** * function: 解压zip 格式的文件 * author:friker * date:2015-1 ...

  10. Xshell5 评估过期,需要采购,不能使用

    Xshell5 评估过期,需要采购,不能使用 标签: Xshell linux 2017年10月10日 13:13:1029507人阅读 评论(9) 收藏 举报 版权声明:本文为博主原创文章,未经博主 ...