4.19 unity 3d 测试题
1.ScreenToViewportPoint,WorldToViewportPoint,ViewportToWorldPoint的运用,实现一个简单的对三维中物体的拖拽移动效果
将屏幕坐标转换为视口坐标
Vector3 pos1 = Camera.main.ScreenToViewportPoint (Input.mousePosition);
//将三维物体的世界坐标转换为视口坐标
Vector3 pos2=Camera.main.WorldToViewportPoint(target.position);
//赋值给一个新的变量
Vector3 pos=newVector3(pos1.x,pos1.y,pos2.z);
//将合成的视口坐标转换为世界坐标赋值给物体
target.position=Camera.main.ViewportToWorldPoint(pos);
2.Mesh Renderer组件从Mesh Filter组件中获得网格信息,并根据物体的Transform组件所定义的位置进行渲染。
3.Rigidbody包含Drag(阻力)属性,ChacractorController不包含Drag属性。
4.触发发生条件:二者都有碰撞器,至少有一个有刚体,至少一个勾选了is Trigger。
5.在Assets中,空的预设体是白色,非空为蓝色
6.Physical.RaycastAll( )产生一条射线,返回多个碰撞物体
Physical.Raycast()产生一条射线,返回一个碰撞物体
7.使用刚体给物体添加速度和力时都不勾选运动学
8.添加了角色控制器的角色出现卡顿现象,需要调节的属性是Skin width
9.Transform.Find( )找到子物体,GameObject.Find( )只能找显示的物体
10.Vector3的Angle(Vector3 from, Vector3 to)返回值为float类型的值
magnitude是Vector3用于获得向量长度的只读属性
11.AddForce f*t=m*v
ForceMode.Acceleration f*t=1*v;
ForceMode.Impulse瞬间力 f*1=m*v;
ForceMode.VelocityChange f*1=1*v;
12.移动相机动作的函数:LateUpdate 通过划分脚本的执行顺序来防止相机跟随物体时发生抖动