unity 基础

来源:互联网 发布:书法字典软件 编辑:程序博客网 时间:2024/05/20 18:03
Unity 程序方面

基本组成:

Scene场景,类似于Flash中的stage,用于放置各种对象。

GameObject,可以携带各种Component(每个GameObject至少带有Transform组件,所有的组件都可以从顶部菜单Component里面找到并添加给游戏对象)。

Component组件,附加在GameObject上,不同的组件可以使GameObject具有不同的属性,Transform、碰撞器、刚体、渲染器等都是组件,脚本也是组件的一种,对象所表现出来的行为都是由组件实现的。

脚本语言:

C#、Javascript、boo(前两者使用较为广泛,网上教程以前两者为主,个人推荐c#),一般的继承MonoBehaviour类的脚本都需要依附的场景中的对象上才能被执行。

 

用户图形界面部分(GUI):

用于制作按钮、文本显示、滚动条、下拉框等常用图形操作界面元素,使用GUISkin和GUIStyle可以自定义样式)

系统自带GUI

各类GUI插件,NGUI、EZGUI等。

预制:

用于程序运行时,动态实例化对象的“母体”,比如,在射击类游戏中,子弹的生成就可以使用实例化预制的方式来实现,这就好比是Flash中的各种Display类,你可以定义它的各种属性方法,然后在使用的时候直接实例化一个实例。

在project面板右击选择Creat——Prefab新建一个预制,将Hierarchy面板中要制成预制的对象拖到这个新建预制上即可。

标签和层:

标签(tag)用于辨别物体,与name类似,使用对象的tag和name都可以找到对应的物体(GameObject.Find(“Name”)、 GameObject.FindWitnTag(“Tag”))。默认是Untagged,可以通过Inspector面板里面Tag的下拉菜单选择Add Tag项来添加新的标签, 在tagmanager中点开Tags左侧的小三角 通过size来增加标签的数量,每个Element内都填入新标签的名字

层(layer),在使用某些功能的时候,可以通过层来过滤不需要运用该功能的对象,也就是把该功能运用到特定的层,比如,相机的Culling Mask属性,通过选择特定层可以实现只显示位于被选中的层的对象。层的添加也是在标签管理器中,Unity已经设置了8个层,你是不能对这8个层进行修改的,你可以从第9个(也就是user layer8)开始添加你定义的层。

 

资源:

.unitypackage格式的文件可以直接import到unity中,记住最好是在打开unity的情况下,在project面板里右击,然后在import packages中选中你要导入的资源。注:Unity不识别中文路径,因此要导入的资源千万不要放在中文目录下!!!还有你的工程也不要新建在中文目录下!!!(你新建工程的时候选择中文路径的话,也建不起来~)

也可以把你的场景打包,导出.unitypackage资源包,然后可以在其他项目中导入使用。(在project面板里右击, export package)

另外,利用工程面板(project)右键菜单中的import new assets可以导入其他形式的资源,如,模型、音频、视频等,当然也可以直接将外部文件夹中的资源拖到project中的方式完成导入。

 

物理引擎:

unity使用NVIDIA PhysX物理引擎

 

碰撞器:各种基本体的碰撞器(box、sphere、capsule、cylinder),网格碰撞器(mesh collider)、车轮碰撞器(Wheel collider)、地形碰撞器(terrain collider)——碰撞器组件在你选中对象的时候会以绿色线框显示。

碰撞检测:碰撞器碰撞检测、光线投射(射线)、触发器碰撞检测,通过碰撞检测可以得到与当前对象发生碰撞的对象信息,使用碰撞的相关函数OnCollisionEnter(碰撞器碰撞检测)、OnTriggerEnter(触发器碰撞检测)、Physics.Raycast(光线投射)获取。

刚体:模拟物体物理现象的基础,加了刚体组件才能模拟重力、阻力等。

力:作用于刚体,你只要通过添加各种力,就可以使刚体表现出跟现实中一样的受力情况。


0 0