1.双击完unity3d的执行文件后按住alt 可弹出工程选择或者新工程创建的窗口
2工程的文件目录: 1 assets 资源文件 (图声音视频等组件)2 library (库) 3 temp (只在工程运行时存在)
3.文件在磁盘上的变化实时反应在主窗口的工程面板(project pannel)中,反之亦然。因此文件直接在磁盘文件夹里面操作会比较方便
4.场景面板(scene panel)所有的物体都显示在这里(同样也在层次面板)
(右上角可以选择只看某一个方向的视图 )
四个方式操作场景:
1.手工具:
-拖拽场景
-按住alt ,旋转场景
-鼠标滚轮缩放场景
2.Position平移工具(十字形)
蓝色Z轴 绿色Y轴 红色X轴
3.Rotation旋转操作 红绿蓝分别沿XYZ轴旋转
4.Scale缩放操作 红绿蓝分别缩放某一轴,黄色小方块缩放整体
5.层次面板:(hierarchy panel): 主要显示物体清单,新建的工程下没有任何物体 只有一个main Camera
新建一个object ,其名字会出现在层次面板中
根据物体名字在层次面板中查找以后会在视图面板中灰化其他物体,按F会选中它
要让某两个物体结合在一起,只要把子物体拖拽到父物体上就完成了层次关系的设置,这样拖动其中一个物体就相当于拖动一组物体了(反之 拖出来就没有绑定关系了)
6游戏视图(Game View)(主摄像机下的2D视图)
运行时所作的操作都不会被保存(默认为测试),要操作的话先按掉运行三角形
若要使游戏视图看到的内容和场景视图一致,先调好场景视图,然后选择主摄像机,菜单中选GameObject->Align with View 即可自动调整摄像机的方向
7工程面板(project pannel) 内容和assets文件夹下相同,可以编辑、查找或者创建所需要的组件
8侦察者面板(Inspector pannel) 显示当前选中的物体的详细信息,或者某段脚本的代码等信息
9游戏物件(GameObject),场景中的物体,包含位置,旋转,缩放三种属性,空物件可以绑定声音,作为只发声的物件
10.组件(components) 给空物体添加声音组件, 给物体增加刚体组件使其具有重力 等等
assets (资源)
11.资源的导入:直接控制文件或者在菜单中选中导入资源
资源的导出:选中需要导出的资源文件在菜单中点击导出资源即可导出对于的资源包,资源包可以与其他开发者共享
12.光源:点光源:照亮某一区域,有层次感 方向光:照亮整体区域 ,无层次感 聚光灯:凸显某块区域 ,范围较小
13摄像机:
1.绑定在某一个物体上,使镜头随之运动(如赛车)
2.场景中可以有多个摄像头,可以通过脚本控制某一时刻被激活的摄像头(同一时刻一般只有一个处于激活状态)
3.声音的大小和离当时激活的摄像头的距离有关
14声音 :(此处javascript的声音参数通过拖拽声音文件来赋值) ,脚本也要通过拖拽绑定到物体上
1.通过给物件添加声音组件,然后将声音源文件拖动到组件上,通过脚本控制播放的时机
2 通过脚本直接动态生成一个音源组件,运行过程中动态播放,完成后自动清楚
15 关节(joints)在组件里面
fixed joint 固定关节
hinge joint 枢纽关节
关节的连接体均为刚体 (在前一物体上增加关节组件,将后一物体拖动到关节组件的连接参数上作为被连接体),最后一个hinge为空表示与空气固定
链条小球实例: 球(带刚体)-----fixed------柱(带刚体)------hinge--------链(带刚体)--------hinge-------链(带刚体)--------hinge-------链(带刚体)--(hinge连接体为空)
运行后即可。
16触发器 trigger
实例用途(碰撞检测):选中物体的属性(is trigger),此物体就会变成隐身,写一个脚本绑定在这个触发器物体上,当有物体掉落穿过时,判断物体的名字,若名字为XX时,执行特定动作
17GUI text 文字属性: 也添加脚本动态显示(拖动绑定) 实例脚本:
var counter:int = 0;
function update(){
counter ++;//每一帧执行一次此函数
guiText.text = ''+counter;
}
20预制件(prefab),具有相同属性的物体抽象出来的一个模板,可以用面向对象中的基类来解释,把重复使用的物体作为预制件大大方便了以后的改动
创建预制件,拖动物体到这个空预制件即可。
21实例化:在空物体中绑定实例化脚本,参数用预制件的拖动进行赋值。
var thePrefab:GameObject;
function Start(){
var instance:GameObject = Instantiate(thePrefab,transform,position,transform,rotation);
}
22. 重力=添加刚体组件
碰撞检测:1.添加脚本(一个碰撞时触发的函数onCollisionEnter)2拖拽绑定(或者菜单添加脚本)
23 简单计时器:(脚本拖动绑定)
var myTimer:float = 5.0;
function Update(){
myTimer -= Time.deltaTime;//上一帧的延时
if(myTimer <= 0)
Debug.log("game over!");
}
24材质: 工程面板创建一个material原件,将图片资源拖到此组件上,生成材质原件,将材质拖动到需要改变材质的物体上(其实可以直接拖图片到物体上,但是这样就无法设置平铺参数)
25 移动物体:
脚本 (朝Y方向运动)
var speed:float = 1.0;
function Update(){
transform.translate(Vector3(0,0,speed) * Time.deltaTime);
}
26输入检测
在update函数中写 if(Input.GetButtonUp('Jump')){
Debug.log('space is hit'); //具体按键对应名字可见文档 工程--设置-输入设置
}
27销毁物体
function Start(){
Destroy(gameObject.find('box'),3);//载入3秒后销毁name为box的物体,如果销毁自己则参数为(gameObject,3)即可
}
28施加外力(若要恒力,也可以写在update 或者按键响应中)
var power:float = 50.0;
function Start(){//载入时施加一次
rigidbody.AddForce(Vector3(0,0,power));
}