Skyboxes.unityPackage-------------天空盒资源包 Character.unityPackage-------角色控制器资源包 3. 通过创建地形Terrain来创建小岛,自带7个工具
4. 地形的高度:是指小岛达到的最大高度
5. 第一个:升高地形,按住shift和左键可以降低地形,只能最低降低到地面(0高度),
点击拖拽就会形成升高地形
6. 第二个:展平工具-----给小岛建立初始高度,快速创建小岛,降低小岛边缘的进行降低
Terrain?Settings?Height、Flatten(展平按钮) 7. 第三个:平滑工具---抹去菱角 8. 第四个:绘制纹理—添加
Edit Textures-?select纹理
添加的一个材质被应用在地形上
绘制地形上的其他物质,GoodDirt(沙滩),Grass&,Cliff(), 9. 第五个:种树工具
10. 第六个:种草工具---绘制细节工具
11. 添加角色控制器:直接拖拽过去,脚本自身都有
12. 第七个:地形的设置:Tree Distance?被渲染树距离角色控制之间的距离,控制游戏的速率。Detail Distance?细节物体距离角色控制器之间的距离。 13. 添加雾和天空
Fog勾选雾就被选中,Fog Color雾的颜色,雾的模式?Exp2、Linear、,Fog Density雾的浓度,Linear Fog End/Start距离摄像机的雾的变化 Ambient Light?环境光 14. 添加湖泊
添加Water(Basic)水资源包
工程面板中点击水资源,u3d自带水是预置物体 15. 导入小房子和声音的效果
Assets?Import Package?Custom Paackage 导入自己的资源包 16. 导图模型资源包
三、小岛游戏的完善------角色控制器和脚本编写详解 1. 检视面板(Inspecctor):复选框?激活作用
2. 静止选项:光照贴图
3. Tag标签:默认无标签,游戏物体的指定,通过标签在脚本中进行引用,使用标签的时
候必须创建。可自创建也可以自带
4. 层(Layer):层是另一种为物体分类的方式。可以使用层来使多个物体遵循特定的灯
光和相机渲染方式。也可以用于射线技术选择性的忽略某些物体。可以把互相碰撞的物
体放在同一个层上,也就是说碰撞必须放在同一个层。层在有光线的物体上可以设置某些层上的物体是否进行照射。
5. 碰撞时虽然没有涉及层,但是创建物体的时候物体被默认存放在同一个default的层上。 6. 新建层的方法:
层中前8个已经被Unity中应用。
在平行光里选择Culling Mask来进行选择性的照射物体。
7. 预置物体(Prefab)-?Select:选择---锁定物体在场景中的位置
--?Revert:恢复修改之前的内容。
-?Apply:应用按钮,所用同一个预置物体克隆出来的物体都去应用
修改的内容。 8. 第一人称控制器
⑴ 三部分组成First Person Controller---外面的绿线:角色碰撞器,Main Camera主摄像
机,Graphics:胶装体
⑵ First Person Controller5个组件:
Transform:位置
Character Controller-?Slope Limit:控制器最大的倾斜度:45度
Character Controller-?Step Offset:控制器最大的台阶高度 Character Controller-?Skin Width:皮肤的厚度决定两个碰撞器之间的相互深入。合理设置值为角色的半径值的百分之十。
Character Controller-?Min Move Distanc(米):角色移动最小值。 Character Controller-?Center:碰撞器距离控制器的距离 Character Controller-?Radius
Character Controller-?Height:碰撞器的高度。
9. 子级物体和父级物体的建立
⑴在场景中创建Cube物体
⑵选中Cube直接拖拽到First Person Controller,Cube作为第一人称控制器的子物体,
Cube的移动情况依赖第一人称控制器。 10. 小岛上的阴影设置
设置第一人称控制器上的胶囊体(物体)---Mesh Rendere(网格渲染器)?Cast Shadows、
Receive Shadows点击选中,并且设置光线物体让其胶囊体产生阴影,Shadow Type选中软件阴影和硬件阴影都可以。 11. 第三人称控制器---3rd Person Controller 12. 第一人称主机摄像组件
GUILayer:负责渲染GUI纹理
Flare Layer:光晕渲染的效果
Camera?Clear Flags:清除标记—摄像机绘制的所有元素(对象),屏幕上的空白部分用什么内容绘制。
Camera?Culling Mask:消影遮罩的模式,选中哪个哪个显示。
Camera?Projection:投影方式,Perspective:透视投影方式,Orthographic:正交投影
模式,用于制作平面游戏。
Camera?Field of View:视野,60度是正常视野。
Camera?Clipping Planes:剪切平面,通过剪切来显示多少距离的物体 13. 主摄像机的规范化窗口句型
Camera?Normalizzed View Port Rect:摄像机,XY代表视图位置左下角(0,0),右上角
(1,1),WH代表窗口宽高比例
14. 利用摄像机来画中画
1)第一人称主摄像机设置成满屏
2)设置空物体摄像机的X为0.8,宽高:0.2
3)由于两个摄像机的深度都为0一样的, 主摄像机的视图把空物体的视图覆盖,所以效果没有。
4)把空物体的摄像机的深度设置为1。
四、 脚本的相关知识
1. 什么是命令:一个脚本中编写的指令。
2. 在java中申请变量?var speed:int = 10;
3. 1) Vector3数据类型:是一个可以存储x,y,z坐标系数据的简单数据类型。
2) Vector3.forward====> Vector3(0,0,1) Vector3.up====> Vector3(0,1,0) Vector3.right====> Vector3(1,0,0) Vector3.zero====> Vector3(0,0,0) Vector3.one====> Vector3(1,1,1)
3) 申请Vector3并且赋值:var v:Vector3 = Vector3(0,0,speed) 4) C#中 public Vector3 v; v = new Vector3(0,0,speed);
4. 设置小方块的初速度小案例-----Rigidbody.velocity
1)建立一个平面、方块、聚光灯:create?plane、create?cube、create?spotlight 2)主摄像机和视图屏幕对齐:GameObject—>Align With View
3)编写脚本
Camera?Depth:优先级的意思,深度值越大会后绘制图形,会覆盖深度值小的绘制摄像机。
Camera?HDR:
rigidbody.velocity = sudu;//给此物体初速度
5. 设置小方块的颜色变换与声音小案例
1)创建小方块
2)编写脚本,①创建变量存储颜色:var oldcolor:Color;
②在游戏一开始的时候取出当前物体的颜色:oldcolor = render.material.color;
//取出当前物体里的渲染组件(Mesh Renderer)下的材质(Material)里的颜色。 3)定义函数function OnMouseOver(){} //unity中自带的函数—事件函数—当鼠标指向一个物体时执行此函数
4)renderer.material.color = Color.red;//设置物体的颜色为红色
5)定义函数function OnMouseExit(){} //当鼠标离开物体的时候执行的函数 6)renderer.material.color = oldcolor;
7)定义函数function OnMouseDown(){} //当鼠标点击物体时执行此函数
8)audio.Play(); //设置物体的Audio Source的音乐并且勾掉Play On Awake(游戏开始就播放音乐)
6. 设置小方块的点击旋转
1)复习摄像机的左右移动:
var speed : int = 5;
var x:float = Input.GetAxis(\var z:float = Input.GetAxis(\ transform.Translate(x,0,z);
2)复习摄像机的升降:
if(Input.GetKey(KeyCode.W)){ transform.Translate(0,5 * Time.deltaTime,0);
}
if(Input.GetKey(KeyCode.S)){
transform.Translate(0,-5 * Time.deltaTime,0); }
3) //当鼠标放在物体时进行自身旋转。最后一个参数省略就是沿自身轴旋转 transform.Rotate(0,180 * Time.deltaTime,0); 4)当鼠标点击物体时进行播放,再次点击时进行暂停
7. 函数:也称为方法,是一系列在游戏运行到特定时候被调用的指令。一个脚本可以包含
多个函数,每个函数中又可以调用其他存在于当前脚本或存在于其他脚本中的函数。
Unity3d提供了很多函数如:OnMouseDown()函数、Instantiate()、Translate()、Rotate()等
详细函数见文本:u3d函数方法资料.txt 8. 编写自己的函数
1)定义自己的函数,写
关键字:function + 函数名(参数1,参数2):sum(a:float,b:float){函数内容} 2)调用函数。
9. 案例---跳动的球
1)在工程面板里创建物理材质,Physic Material?Bounciness设置成0.96
2)创建小球增加Sphere Collider?Material:为碰撞器增加物理材质,直接拖拽Physic Material到地面与小球上
3)t += Time.deltaTime;//从上一帧开始渲染到下一帧渲染的时间,起到计时作用
10. Find()和FindWithTag()命令—寻找命令—消耗计算能的命令,要避免在Update和每一帧
都被调用的函数中使用这两个命令,在Start()和Awake()中使用。变量 =