参考书:《Unity3D 游戏开发》
● scene图中按F键:放大,居中当前选中的物体
● 坐标轴:红-x轴,绿-y轴,蓝-z轴
● 逐帧运行程序:
● OnGUI:可以用来画界面
● 高级控件 or 低级控件?
● Label控件也可以贴图
● 只有脚本的公有变量才可以在编辑器中直接赋值。Texture、String等
● 游戏界面可以由若干个窗口组成,而每个窗口又由若干个视图组成。创建窗口时需要设定他的显示区域,在窗口中可以添加任意组件,前提是组件的显示区域必须在窗口当中,否则无法显示。另外,窗口中的所有控件都采用相对坐标,相对窗口左上角的坐标。
● 改变默认GUI的样式:
1、在 Project 中新建一个 GUISkin,叫做 BeautifulSkin,设置好各个项。
2、脚本中定义一个全局变量 var mySkin : GUISkin;
3、在OnGUI函数中画界面时,调用 GUI.skin = mySkin; 设置当前使用的皮肤
4、在编辑器中,对脚本的 mySkin 变量赋值为 BeautifulSkin。
● 自定义风格组件?
● GUILayout?
● 实际上,在开发2D游戏时,不能使用GUI来实现。GUI的渲染效率比较低,并且也无法使用Unity引擎中独具特色的功能,比如物理引擎、粒子系统等。
● 建议初学者使用JS进行入门阶段学习,但是进阶阶段推荐使用C#,因为C#在编辑思想上更符合Unity引擎的原理。
● MonoDevelop脚本编辑器并不是Unity公司开发的,它是一个开源项目,任何人或公司都可以使用。由于该编辑器具有强大的跨平台功能,并且使用起来非常方便,所以很快就被Unity公司作为核心脚本开发环境来使用。
● MonoDevelop不仅可以编辑脚本,也可以调试脚本。
● FixedUpdate的调用时间设置:Edit -> Project Settings -> Fixed Timestamp
● 使用脚本来调用游戏对象的方式有2种,它们是:1、可以将脚本绑定在一个游戏对象上,2、也可以在代码中动态绑定脚本和删除脚本。任何一个对象都可以绑定多个脚本,并且这些脚本互不干涉,各自完成各自的生命周期。
● 创建游戏对象有2种:1、将模型预先放入 Hierachy视图中,然后在视图中任意拖动该模型在3D世界中的位置,运行游戏后该模型就会出现在Game视图中。
2、在代码中动态创建和删除对象,这种比较灵活。
● 获取对象的方式:1、名字 2、标签 3、通过标签获取多个对象
● 添加组件时,可以使用AddComponent方法。由于组件自身没有对应的删除方法,需要用父类执行Object.Destroy()方法才能删除它。其中该方法的参数为需要删除的游戏对象或游戏组件。在删除某一对象时,将连带将该对象的所有组件一并删除。
● Unity3.5 不支持 c#命名空间,不知道4.5是不是支持了。
● “这里需要注意的是js脚本必须放在 Standard Assets 中文件夹中,否则无法编译通过”?
● Unity提供了3种光源,点光源、聚光灯、平行光。它们可以模拟自然界中任何一种光。
● 因为摄像机照射的面正是游戏显示的内容,所以可在摄像机上绑定一个Skybox组件,用于在Game视图中直接显示天空盒子贴图。需要注意的是,如果游戏中只存在一个摄像机对象,这样添加天空盒子没有任何问题,但是如果游戏中存在多个摄像机对象,在摄像机之间进行切换后天空盒子贴图的位置就会出出问题,因为贴图资源只是相对于当前摄像机对象的,多个摄像机对象无法模拟同一个天空盒子。
● 在游戏场景中直接添加天空盒子。
● 自定义菜单项?
● 修改了预设的,所有对象都会跟着改变。
● 可以通过创建一个空的GameObject然后绑定audio来实现播放音乐。