一、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. Hive GenericUDF2

    再来看一个分数统计的小例子. 在Hive中存在如下一张表: hive> describe tb_test2; OK name    string score_list  array<map ...

  2. Benthos metrcis 说明

    Benthos 按照input, pipeline ,buffer,conditions,ouput 这个几个大类,为我们提供了 方便的分析metrics,支持json 格式同时可以暴露为 stats ...

  3. (转)mysql创建表时反引号的作用

    试用navicat工具查看现网mysql建表语句时,发现表名和字段名都是反引号引起来的 CREATE TABLE `tab_notice_title_tv` ( `i_id` int(11) NOT ...

  4. Kubernetes 架构图

    Kubernetes 架构图: Pod K8S中最基础的调度单位是Pod,它有网络,有存储.Pod里面运行着一个或者若干个docker容器.同一个Pod里的容器共享同一个网络命名空间,可以使用loca ...

  5. antd 知识点

    表格实现:不管多少列,为列指定一个宽度,让表格在容器里可左右拖动 例子文件地址:https://github.com/cag2050/antd_mobx_demo/blob/master/src/co ...

  6. python实现切换代理ip

    大量的处理爬虫的时候,IP地址容易被封掉,这个时候可以使用代理IP来帮助完成接下来的任务了 使用Requests模块来完成请求,代码如下: import urllib.requestimport re ...

  7. 使用JMeter进行RESTful API测试

    使用JMeter进行RESTful API测试 在哪里设置实现最优脚本重用的属性 由于支持云的应用程序通常可以轻松.快速地进行复制和部署,所以可以在多种环境中对其进行测试.如果您需要在多个环境中测试和 ...

  8. golang里处理xml文件 转自https://studygolang.com/articles/5328

    <?xml version="1.0" encoding="utf-8"?> <servers version="1"&g ...

  9. msp430学习笔记-ADC12

    本文引用:http://bbs.ednchina.com/BLOG_ARTICLE_3013748.HTM MSP430单片机的ADC12模块是一个12位精度的A/D转换模块,它具有高速度,通用性等特 ...

  10. TStrings与Memo.Lines赋值的问题

    //想实现在函数中生成Memo1的内容,而后赋给Memo.Lines //方法1: var s: TStrings; begin s := TStringList.Create; AddMemoDat ...