zoukankan      html  css  js  c++  java
  • 角色控制器 Character Controller

    Unity中,1个单位尺寸代表1米。即在Unity中创建一个Cube的尺寸是1x1x1米大小。

    Unity推荐把人的身高定为大约2个Unity单位高度(2米)。

    为了截取角色的全身照,需要把角色Instantiate到指定位置,但是角色大小不一,可能相机原先设定的orthographicSize不足以看到角色的全身,

    (一)根据角色的真实高度调整相机的orthographicSize

                CharacterController controller = obj.GetComponent<CharacterController>();
          float h = controller.height;
          float scaleY = obj.transform.localScale.y;
    
          float multiNum = h * scaleY;  //物体在世界中的真实高度
                showCamera.aspect = 1;
          showCamera.orthographicSize = multiNum / 2 + 0.06f; 

    相机的orthographicSize为在正交模式下相机的一半尺寸。

    controller.height×obj.transform.localScale.y 为角色物体在Unity中的真实高度。

    (二)固定相机的orthographicSize,改变角色的大小

               CharacterController controller = obj.GetComponent<CharacterController>();
          float h = controller.height;
          float scaleY = obj.transform.localScale.y;
          float multiNum = 1.5f / h / scaleY;
          obj.transform.localScale = new Vector3(obj.transform.localScale.x * multiNum, obj.transform.localScale.y * multiNum, obj.transform.localScale.z * multiNum);

    相机中可容纳角色的高度为1.5。

  • 相关阅读:
    【DNN发布包解释】package 包裹
    数据仓库 SSIS
    【DNN 系列】 添加模块后不显示
    GridView 绑定 ObjectDataSource
    【DNN 系列】 MVC 分页
    关于一级指针和二级指针的简单见解
    高效使用Vector
    关于autoptr
    (转)Win10 + VMware-CentOS7文件共享、网络连接
    Linux 笔记
  • 原文地址:https://www.cnblogs.com/martianzone/p/3287737.html
Copyright © 2011-2022 走看看