【初阶】unity3d官方案例_太空射击SpacingShooter 学习笔记 年后整理

 

这个案例的各版本教程

【视频】官方版本 英语中字版 https://www.bilibili.com/video/av6125976/index_11.html#page=1
【视频】58开发网 中文版 http://www.58kaifa.com/course/27/learn#lesson/557
【文字】简书 中文版 https://www.jianshu.com/p/8cc3a2109d3b#

1.导入AssetStore商店里 SpacingShooter的全部资源

2.放背景plane 放飞船 放...

3.不受场景里灯光影响的材质球:

 

4.逻辑:任何一个3d object,被创建的基本组件:


总结:

组件1:Transform


组件2:Mesh Filter    (Unity3d mesh Filter和mesh Render双生双克  https://blog.csdn.net/avi9111/article/details/52151385)


组件3:collider   

在目前版本里(2017.3.0),上述这些3d object都自带collider组件。

 

关于这个collider的:注意:collider的耗资源情况,与它所代表的体的面数无关


1).报错

  解决:不要用Mesh collider,或者把它的convex打开 


2)


 组件4:Mesh Renderer 

 Mesh Renderer不是材质球!    不是material  !!!

逻辑是:

a.两个独立物体: Quad,  Material       

b.一个组件:Mesh Renderer 

最后:组件,连接两个独立物体


the renderer is only able to use the texture,it is a part of material

Mesh Renderer组件只能使用texture,texture是材质球的一部分。


  • “直接将texture拖拽的模型上”这个操作,unity都做了什么:

a.检测texture是否有相关联的材质球,如果没有,自动创建材质球。(并且自动添加到materials文件夹中)

b.添加到被拖拽模型的Mesh Renderer中 。       


 

 5.让飞船动起来:

脚本注意1:脚本名 = 类名 首字母必须大写
Rigidbody rig;
void FixedUpdate()
{
    float moveHorizontal = Input.GetAxis("Horizontal");
    float moveVertical = Input.GetAxis("Vertical");
    rig = GetComponent<Rigidbody>(); 
}

 

fixed update函数:

有rigidbody这个组件,我们才能使用unity内置的物理引擎。

原文地址:https://www.cnblogs.com/lizitang/p/8522346.html