Unity3D常用脚本.docx

上传人:b****2 文档编号:12642650 上传时间:2023-04-21 格式:DOCX 页数:25 大小:429.30KB
下载 相关 举报
Unity3D常用脚本.docx_第1页
第1页 / 共25页
Unity3D常用脚本.docx_第2页
第2页 / 共25页
Unity3D常用脚本.docx_第3页
第3页 / 共25页
Unity3D常用脚本.docx_第4页
第4页 / 共25页
Unity3D常用脚本.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

Unity3D常用脚本.docx

《Unity3D常用脚本.docx》由会员分享,可在线阅读,更多相关《Unity3D常用脚本.docx(25页珍藏版)》请在冰豆网上搜索。

Unity3D常用脚本.docx

Unity3D常用脚本

场景转换:

varscreenbutton:

boolean;

functionStart(){

DontDestroyOnLoad(this);

screenbutton=true;

}

functionUpdate(){

if(Input.GetKeyDown(KeyCode.Escape)){

screenbutton=true;

functionOnGUI(){

if(screenbutton==true)

if(GUI。

Button(Rect(Screen。

width/2—380,Screen。

height/2-190,60,50),"Scene1")){

print(”YouclickScene1”);

Application.LoadLevel

(1);

screenbutton=false;

}elseif(GUI.Button(Rect(Screen。

width/2-380,Screen.height/2—130,60,50),"Scene2”)){

print("YouclickScene2");

Application。

LoadLevel

(2);

screenbutton=false;

}elseif(GUI。

Button(Rect(Screen。

width/2—375,Screen。

height/2—0,50,50),”Quit”)){

print("YouclickQuit");

Application.Quit();

心得:

场景转换时,这个程序贴在按钮界面场景中。

在BuildSetting(导出)(在File下)菜单中加入所需场景。

0为按钮界面。

可以无限增加场景。

}elseif(GUI.Button(Rect(Screen。

width/2-380,Screen.height/2—130,60,50),”Scene2”)){

print("YouclickScene2");

Application.LoadLevel

(2);

screenbutton=false;

复制此段程序并做修改。

运动控制键:

上下左右

varTankSpeed:

int=20;

functionUpdate(){

if(Input.GetKey(KeyCode。

W)){

print("go");

transform。

Translate(Vector3。

forward*Time.deltaTime*TankSpeed);

}elseif(Input.GetKey(KeyCode.S)){

print(”goback”);

transform.Translate(Vector3.forward*Time。

deltaTime*—TankSpeed);

}elseif(Input。

GetKey(KeyCode。

A)){

print(”turnleft”);

transform.Rotate(Vector3.up*Time。

deltaTime*-TankSpeed);

}elseif(Input。

GetKey(KeyCode.D)){

print(”turnright");

transform.Rotate(Vector3。

up*Time.deltaTime*TankSpeed);

需要放在第一视角的物体或者摄像机上.

加天空背景:

菜单栏Component下的Rendering下的Skybox。

将他加在所需场景的摄像机上,选择所需的天空。

运行时自然出现。

各种按钮汇总:

鼠标碰触后显示说明文字。

functionOnGUI(){

GUI.Button(Rect(0,0,100,20),GUIContent(”Clickme”,"Thisisthetooltip"));

GUI。

Label(Rect(0,40,100,40),GUI。

tooltip);

多项选择,以上都选择。

varallOptions=true;

varextended1=true;

varextended2=true;

functionOnGUI(){

allOptions=GUI.Toggle(Rect(0,120,150,20),allOptions,”EditAllOptions");

GUI。

enabled=allOptions;

extended1=GUI.Toggle(Rect(20,70,130,20),extended1,

"ExtendedOption1”);

extended2=GUI。

Toggle(Rect(20,90,130,20),extended2,

"ExtendedOption2”);

GUI。

enabled=true;

if(GUI.Button(Rect(0,160,150,20),"Ok”));

print("userclickedok”);

鼠标碰触第一个按钮有解释,鼠标碰触第三个对话框有解释。

碰第二个没有解释。

functionOnGUI(){

GUI.Box(Rect(5,300,110,75),GUIContent(”Box","Thisboxhasatooltip"));

GUI。

Button(Rect(10,230,100,20),"Notooltiphere”);

GUI.Button(Rect(10,200,100,20),

GUIContent(”Ihaveatooltip”,"Thebuttonoverridesthebox"));

GUI.Label(Rect(10,260,100,40),GUI.tooltip);

半透明,说明性文字对话框。

无选择。

functionUpdate(){

}

functionOnGUI(){

GUI。

BeginGroup(newRect(Screen.width/2—400,Screen.height/2—300,800,600));

GUI。

Box(newRect(0,0,800,600),"Thisboxisnowcentered!

-hereyouwouldputyourmainmenu”);

GUI.EndGroup();

}

滚动条,选择按钮.可以放多个按钮并且节省位置。

functionUpdate(){

}

varscrollPosition=Vector2.zero;

functionOnGUI(){

scrollPosition=GUI。

BeginScrollView(Rect(10,400,100,100),

scrollPosition,Rect(0,0,220,200));

GUI.Button(Rect(0,0,100,20),”Top—left");

GUI.Button(Rect(120,0,100,20),”Top-right");

GUI。

Button(Rect(0,180,100,20),”Bottom—left”);

GUI。

Button(Rect(120,180,100,20),”Bottom-right”);

GUI。

EndScrollView();

}

循环的字幕。

varletterPause=0。

2;//定义每个字出现的时间间隔

varsound:

AudioClip;//打字机的声音

privatevarword;//存储你打字机效果想要输出的字的变量

privatevarText:

String="MynameisRayYang。

Keepitinyourheart!

";//你希望打字机效果输出的字

functionStart(){

word=Text;//把你输出的字先赋值给word

Text=”";//把你要显示的字先抹除,以便你可以在最初显示的时候显示为空,当然你也可以加上其他字,让他先显示,打字机效果打的字会显示在这个后面

yieldWaitForSeconds

(2);

TypeText();

functionOnGUI(){

GUI。

Label(Rect(150,15,250,25),"Pleaseanswermyquestion,whoamI?

");

GUI。

Box(Rect(150,40,250,25),Text);

functionTypeText(){

for(varletterinword。

ToCharArray()){//做一个循环,定义一个变量letter逐次等于word中的每一个字符

Text+=letter;//把这些字赋值给Text

if(sound)//控制声音,出现一个字,发一个声音

audio.PlayOneShot(sound);

yieldWaitForSeconds(letterPause);

}

}

functionUpdate(){

if(Text==word){

Text="”;

TypeText();

}

}

有打字声音的字幕循环。

varscrenbutton:

boolean;

varicon:

Texture;

varallOptions=true;

varextended1=true;

varextended2=true;

varletterPause=0.2;//定义每个字出现的时间间隔

varsound:

AudioClip;//打字机的声音

privatevarword;//存储你打字机效果想要输出的字的变量

staticvarText:

String=”Thisiszcxfirstproject!

Icandoit.”;

vardel:

boolean=false;

varparticle:

GameObject;

functionStart(){

DontDestroyOnLoad(this);

screnbutton=true;

word=Text;

Text=””;

yieldWaitForSeconds

(2);

TypeText();

}

functionUpdate(){

if(Input。

GetKeyDown(KeyCode。

Escape)){

screnbutton=true;}

if(Text==”Thisiszcxfirstproject!

Icandoit."){

Text="”;

TypeText();

}

if(Input.GetMouseButtonDown(0)){

Text="";

for(varc:

charinInput.inputString){

//Backspace—Removethelastcharacter

if(c=="\b"){

if(guiText。

text。

Length!

=0)

guiText.text=guiText。

text.Substring(0,guiText。

text。

Length-1);

}

//Endofentry

elseif(c=="\n”){

print("Userenteredhisname:

"+guiText.text);

}

//Normaltextinput-justappendtotheend

else{

guiText.text+=c;

}

}

}

functionOnGUI(){

if(screnbutton==true){

if(GUI。

Button(Rect(Screen.width/2—30,Screen。

height/2—30,60,50),"scene1”)){

print("youclickScene1”);

Application.LoadLevel

(1);

screnbutton=false;

}elseif(GUI.Button(Rect(Screen。

width/2—30,Screen。

height/2+30,60,50),"scene2”)){

print(”youclickScene2”);

Application.LoadLevel

(2);

screnbutton=false;

}elseif(GUI。

Button(Rect(Screen。

width/2—30,Screen.height/2+90,60,50),”scene3")){

print(”youclickScene3”);

Application.LoadLevel(3);

screnbutton=false;

}elseif(GUI。

Button(Rect(Screen。

width/2-30,Screen。

height/2+150,60,50),"Quit")){

print("youclickQuit");

Application。

Quit();

}

//GUI.Button(Rect(0,0,100,20),”ClickMe”);

GUI.Button(Rect(0,0,100,20),GUIContent(”Clickme","Thisisthetooltip”));

GUI。

Label(Rect(0,20,100,40),GUI.tooltip);

allOptions=GUI.Toggle(Rect(40,40,150,20),allOptions,”EditAllOptions”);

GUI。

enabled=allOptions;

extended1=GUI。

Toggle(Rect(60,60,130,20),extended1,"ExtendedOption1");

extended2=GUI。

Toggle(Rect(60,80,130,20),extended2,”ExtendedOption2");

GUI.enabled=true;

if(GUI。

Button(Rect(40,100,150,20),"Ok"))

print(”userclickedok”);

GUI。

BeginGroup(newRect(Screen.width/2—400,Screen.height/2-300,800,600));

GUI.Box(newRect(0,0,800,600),

"Thisboxisnowcentered!

-hereyouwouldputyourmainmenu");

GUI。

EndGroup();

GUI.Label(Rect(250,75,250,25),"Pleaseintroduceyourobjec!

”);

GUI.Box(Rect(250,100,250,25),Text);

functionTypeText(){

for(varletterinword。

ToCharArray()){//做一个循环,定义一个变量letter逐次等于word中的每一个字符

Text+=letter;//把这些字赋值给Text

if(sound)//控制声音,出现一个字,发一个声音

audio.PlayOneShot(sound);

yieldWaitForSeconds(letterPause);

主板游戏系列程序:

CameraMoveRotate(第一视角界面场景自控程序)

使用时点击鼠标右键可以自由转换视角.同时点击AWSD键可以控制前进后退,向左向右.C#程序。

usingUnityEngine;

usingSystem.Collections;

///MouseLookrotatesthetransformbasedonthemousedelta.

///MinimumandMaximumvaluescanbeusedtoconstrainthepossiblerotation

///TomakeanFPSstylecharacter:

///-Createacapsule.

///-Addarigidbodytothecapsule

///—AddtheMouseLookscripttothecapsule。

///->SetthemouselooktouseLookX.(Youwanttoonlyturncharacterbutnottiltit)

///-AddFPSWalkerscripttothecapsule

///-Createacamera.Makethecameraachildofthecapsule.Resetit'stransform。

///—AddaMouseLookscripttothecamera.

///—>SetthemouselooktouseLookY。

(Youwantthecameratotiltupanddownlikeahead.Thecharacteralreadyturns.)

[AddComponentMenu(”Camera-Control/MouseLook")]

publicclassCameraMoveRotate:

MonoBehaviour{

publicenumRotationAxes{MouseXAndY=0,MouseX=1,MouseY=2}

publicRotationAxesaxes=RotationAxes。

MouseXAndY;

publicfloatsensitivityX=15F;

publicfloatsensitivityY=15F;

publicfloatminimumX=-360F;

publicfloatmaximumX=360F;

publicfloatminimumY=-60F;

publicfloatmaximumY=60F;

publicfloatmoveSpeed=5。

0F;

floatrotationX=0F;

floatrotationY=0F;

QuaternionoriginalRotation;

voidUpdate()

{

//鼠标控制的转向

if(!

Input.GetMouseButton

(1)){

return;

}else{

if(axes==RotationAxes。

MouseXAndY)

//Readthemouseinputaxis

rotationX+=Input。

GetAxis("MouseX")*sensitivityX;

rotationY+=Input.GetAxis(”MouseY”)*sensitivityY;

rotationX=ClampAngle(rotationX,minimumX,maximumX);

rotationY=ClampAngle(rotationY,minimumY,maximumY);

QuaternionxQuaternion=Quaternion.AngleAxis(rotationX,Vector3.up);

QuaternionyQuaternion=Quaternion。

AngleAxis(rotationY,—Vector3。

right);

transform。

localRotation=originalRotation*xQuaternion*yQuaternion;

elseif(axes==RotationAxes。

MouseX)

{

rotationX+=Input.GetAxis("MouseX”)*sensitivityX;

rotationX=ClampAngle(rotationX,minimumX,maximumX);

QuaternionxQuaternion=Quaternion。

AngleAxis(rotationX,Vector3.up);

transform.localRotation=originalRotation*xQuaternion;

}

else

rotationY+=Input。

GetAxis(”MouseY")*sensitivityY;

rotationY=ClampAngle(rotationY,minimumY,maximumY);

QuaternionyQuaternion=Quaternion。

AngleAxis(—rotationY,Vector3。

right);

transform.localRotation=originalRotation*yQuaternion;

}

//键盘控制的运动

floatx=Input.GetAxis("Horizontal")*Time。

deltaTime*moveSpeed;

floatz=Input。

GetAxis("Vertical”)*Time。

deltaTime*moveSpeed;

transform。

Translate(x,0,z);

}

voidStart()

//Maketherigidbodynotchangerotation

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1