Unity笔记- 狗刨学习网 - 图文 下载本文

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文件已创建的样式