Unity3D实操笔记(1)

一、疯狂教室

1.练习内容:

擅码网《Unity3D初级课程之新手入门》学习的内容,包括:
材质球,预制体,摄像机,灯光,
鼠标键盘输入,刚体,刚体移动,碰撞体,触发器,刚体触发事件。
主要是熟悉各种操作,还有面向对象的程序的写法。

2.具体要求:

  1. 搭建一个有四面围墙(面向主角的那面有门),九套桌椅的教室。
  2. 一个Cube做主角,它可以通过WASD进行前后左右移动。
  3. 门在角色靠近时自动打开,离开时自动关闭。
  4. 桌椅在主角靠近一定范围时,自动向上跳起两米,离开范围时自动落下。

3.遇到的问题及解决:

①新建一个场景后,在调整太阳光位置时,场景变暗,恢复不到新建时的亮度了。

在U3D的论坛中这个帖子和GuyaWeiren这位的博客
中找到了解决方法,把灯光的自动渲染关闭再打开就好了(可能因为版本的问题,和找到的两个方法都不太一样,但是问题解决了)。
Window→Lighting→settings
Unity3D实操笔记(1)_第1张图片

②刚体的Mass属性不知道有什么效果(单位是kg)

a.http://www.ceeger.com/Components/class-Rigidbody.html

  • The relative Mass of two Rigidbodies determines how they react when they collide with each other.
    两个物体的相对质量定义它们之间的碰撞反应表现。
  • Making one Rigidbody have greater Mass than another does not make it fall faster in free fall. Use Drag for that.
    一个质量大的物体并不会在自由落体中下落更快。想实现这种现象请使用阻力。
  • It is recommended to make masses not more or less than 100
    times that of other Rigidbodies.
    物体的质量(任意单位)。建议一个物体的质量不要多于或少于其他单位的100倍。

b.https://blog.csdn.net/wangmengmeng99/article/details/49822737
大部分物体的质量属性接近于0.1才符合日常生活感官感受,超过10 ,则失去了仿真效果。

③如果一个刚体想要移动,几种方法有什么不同

这里应该之后单独展开

FixedUpdate()Update()中未见明显的区别
按键获取用了Input.GetKeyDown(KeyCode.W)导致了没有过程的突现,穿墙
m_Transform.Translate(Vector3, Space);
m_Rigidbody.MovePosition(Vector3);
m_Rigidbody.AddForce(Vector3,ForceMode);//Cube滚动
m_Rigidbody.AddRelativeForce(Vector3,ForceMode)//Cube滚动

4.要注意的事:

  1. Rigidbody.MovePosition(Vector3);和Rigidbody.AddForce(Vector3,ForceMode);两方法物体是根据世界坐标系的方向移动的。Rigidbody.AddRelativeForce(Vector3,ForceMode);方法物体是根据自身坐标系的方向移动的。意味着Cube滚动后坐标方向改变,移动方向也会改变。
  2. 键盘输入Input.GetKey(); 等方法参数为KeyCode 枚举。
    如:Input.GetKeyDown(KeyCode.W)
  3. 使用Rigidbody.AddRelativeForce(Vector3,ForceMode);方法, 刚体不能移动,可能是力不够大
    如:Mass为1时,Vector3*500左右可以移动

5.杂项:

  1. Reference Manual 《Unity 组件参考手册》
  2. Unity官方论坛

你可能感兴趣的:(Unity,Unity3D)