角色控制器 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。