System?Renderer.Material里添加材质球(Particle Texture)
5)Duration:播放时间 Looping:是否循环播放 Prewarwm:预热 Start Delay:开始延迟(勾选预热) Start Lifetime:开始的生命周期
3. Unity3d中自带粒子资源
Assets中导入,在Standard Assets—>Particles—>Fire
4. 编写火柴拾取函数---在第一人称控制器的inevetory的脚本里
5. 旋转方式:transform.RotateAround(cy.position,Vector3.up,200*Time.deltaTime);
参数一:围绕这个点 参数二:按哪个方向旋转 参数三:旋转速度
函数作用:围绕一点按照某个方向进行旋转
6. 使用数组和循环为物体添加脚本----循环用一个命令来给多个物体赋值
数组:var cms:Renderer[];------内建的数组
循环语句:for(var co:Renderer in cms){} //申请一个co变量—渲染器组件类型。把cms内的内容存放在co中。
co.material.color = Color.red; //为渲染器的材质赋予颜色 7. 非内置申请数组和显示数组:
申请数组:var arr = new Array(16,12,87,67);
申请动态数组(没有确定数组大小,数组类型):var barr = new Array(); 从小到大显示数组:arr.Sort();
向数组中放入内容:barr.Push(“push1”); 显示数组:wenzi_bl.text = arr.join(“,’)+ “,arr长度:” + arr.length + “,barr长度:”+barr.lenght; //join命令是把数组中的每个内容以“,”的形式分隔出来 8. 循环语句和输入语句 ss = GUI.TextField(Rect(300,200,200,20),ss,30);// GUI.TextField—绘制一个输入框
Rect(300,200,200,20)—长宽高
http://game.ceeger.com
第八章、菜单的制作—利用Texture物体,鼠标触碰的事件
1. 如何快速的创建GUI Texture选择Textures里的图片,然后点击创建 2. 鼠标碰到图片上时纹理发生改变:
var leveltoload:String; //正常的图片
var normaltexture:Texture2D; //鼠标指向时替换的图片 var rollovertexture:Texture2D; function OnMouseEnter(){
guiTexture.texture = rollovertexture; }
function OnMouseExit(){ }
guiTexture.texture = normaltexture;
function OnMouseDown(){ audio.PlayOneShot(beep); //为了声音播放完而延迟0.35秒
}
yield new WaitForSeconds(0.35); guiTexture.texture = rollovertexture; //代码载入应用场景levevltoload=01 Application.LoadLevel(leveltoload);
3. 实现的效果:当玩家点击Esc按键时弹出窗口提示退出游戏,再次点击Esc按键时退出
这个弹出窗口。
代码:static var WindowsSwitch:boolean = false;//当变量为假时关闭窗口,为真时打开窗 private var widowRect = Rect(300,280,240,200);//变量保存窗口位置和大小
//退出游戏 Function Update(){
If(Input.GetKeyDown(KeyCode.Escape)){ WindowsSwitch = !WindowsSwitch;
}}
//绘制GUI窗口 Function OnGUI(){
//绘制窗口命令:GUI.Window—》参数1:窗口的id号,参数2:绘制的窗口//在屏幕的位置与大小,参数3:窗口绘制成功后调用参数3函数-窗口函数,参数4:字符串类型,绘制窗口的标题
windowRect = GUI.Window(0,widowRect,WindowContain,”测试函数”); }
Function WidowContain(windowID:int){ If(GUI.Button(Rect(70,70,100,20),”关闭
乐”)){gameObject.Find(“Terrain”).GetComponent(AudioSource).enable = false;}
If(GUI.Button(Rect(70,70,100,20),”打开乐”)){gameObject.Find(“Terrain”).GetComponent(AudioSource).enable = true;}
If(GUI.Button(Rect(70,70,100,20),”关闭窗口”)){ WindowsSwitch = false;}
If(GUI.Button(Rect(70,70,100,20),”退出游戏”)){Application.Quit();} }
//拖拽窗口命令,允许窗口在0,0,1000,1000范围内拖拽
GUI.DragWindow(new Rect(0,0,1000,1000));
4. 定制自己的弹出窗口皮肤GUISkin
①、在
Project
下创建一个
guiskin
文件夹下创建一个
GUI 音音
Skin
设置图片的大小:
如果想设置的GUI Skin皮肤必须在脚本中进行引用 5. 生成对话窗口---本地
GUITEST脚本:
Var myguiskin:GUISkin; private var winrect:Rect; //是否对话
static var talk:boolean=false; //对话信息
Static var info:String; //
Private var scrpos:Vector2; function Start(){
winrect=Rect(500,60,360,510); info=”**************”;
}
Function OnGUI(){
If(talk){ //引用myguiskin皮肤 GUI.skin = myguiskin;
}
winrect=GUI.Window(2,winrect,domywindow,””);
}
Function domywindow(winind:int){ //使用垂直布局
GUILayout.BeginVertical(); GUILayout.Space(8);
//应用皮肤mybuttonskin
GUILayout.Button(“”,”mybuttonskin”); GUILayout.Lable(“”,”mydividerskin”); GUILayout.Lable(“mylabelskin”,”mylabelskin”); GUILayout.Lable(“”,” mydividerskin”); GUILayout.EndVertical();
If(GUI.Buttonn(Rect(150,440,60,20),”关闭”)){ } }
talek = false;
GUI.DragWindow(Rect(0,0,1000,1000));
6. 资源商店导入模型 Ctrl+9/Windows—>Asset Store 7.
欧拉角脚本---点击物体时,物体面对主角,离开时转回去 var old:Vector3;
var player:Transform; function Start(){
//物体在世界坐标的绝对角度 old = transform.eulerAngles;
}
Function OnMouseEnter(){ transform.LookAt(player); }
Function OnMouseExit(){ }
Transform.eulerAngles=old;
8. 接收修船任务通过一个布尔变量来控制是否完成任务 9. GUI控件的使用方法
GUI.skin = myguiskin;//给GUI的界面赋值文件
rect = GUI.Window(0,rect,mydowin,”菜单窗口”);//创建窗口
GUILayout.BeginHorizontal();//开始水平布局-----GUILayout.EndHorizontal();//结束水平 tog = GUILayou.Toggle(tog,”toggle”);//创建一个“toggle”名字的单选框
text=GUILayout.TextField(text,50);//创建一个文本输入框,最大值为50 GUILayout.Label(hs.ToString(),”mylabel”);//创建一个标签,标签内容是hs转换为字符串类型,样式为mylabel---myguiskin文件已创建的样式