unity编程笔记_如何添加玩家碰到宝箱后宝箱被吸收消失的效果(destroy(other.gameobject)//玩-程序员宅基地

技术标签: 【源码】  

/#pragma strict

//

一、声明变量

//var a : int = 1;//整型

//

//var b : float = 0.05;//浮点

//

//var c : GameObject;//游戏物体

//

//var c2 : Rigidbody;//刚体

//

//var c3 : Collider;//碰撞

//

//var c4 : Transform;//位置

//

//var c5 : Renderer;//渲染器

//

//var c6 : Material;//材质

//

//var d : Color;//颜色

//

//var e : Texture;//贴图

//

//var e1 : Texture2D//2D贴图

//

//var f : String = "XXX"//字符

//

//var bool : boolean = true / false;     //布林值1、条件判断2、开关3、对错  默认是false

//

//var tiewu : GUITexture     //贴纸(瞄准镜)

//

//var aa : MovieTexture;//视频

//

//private var g : float = 0.1;

////私有(unity中不显示数值)

//public var h : float = 0.1;

////公开(unity中显示数值,与var开头一样)

//static var i : float = 0.1;

////静态(在其他脚本中可以使用 方法:脚本名。提取)

//

//GameObject.Find("cube")//直接指定某物体

//

//gameObject.GetComponent.<组件名称>();(使用已有的组件)

//

//gameObject.AddComponent.<添加的组件名称>(); (增加一个没有的组件)

//

*************************************************************************************************

二、函式

//function Awake () {

//}//只运行一次

//

//function Start () {

//}//只运行一次

//

//function Update () {

//}//一直运行

//

//function OnMouseDown(){

//}//按下鼠标左键执行(脚本放在谁身上,点谁才管用)

//

//function OnMouseUp(){

//}//松开鼠标左键执行

//

*************************************************************************************************

//

三、碰撞测试

//function OnTriggerEnter (other : Collider) {

//}//接触

//

//function OnTriggerStay (other : Collider) { 

//}//穿过中

//

//function OnTriggerExit (other : Collider) {

//}//穿过后

//

*************************************************************************************************

四、如果语句

//if (transform.position.x >= 10 ){

//

//}                      //如果(条件)

//

//if transform.position.x >= 10 &&  transform.position.y <= 5{

//

//}                      //如果(条件① && 条件②)两个条件都必须满足

//

//if transform.position.x >= 10 ||  transform.position.y <= 5{

//

//}                     //如果(条件① || 条件②)两个条件只需要满足一个

//

//

//else if(条件③){

//

//}                     //如果if语句条件未满足,满足else if语句条件就执行

//

//else

//{

//

//}                     //如果条件不成立执行这一个

//

//

*************************************************************************************************

五、移动

//transform.position.x += 0.05;

//

//transform.position += Vector3(0.05,0,0);

//

//transform.position += Vector3.right*0.05;

//

//transform.Translate(0.05,0,0);

//

//transform.Translate(Vector3(0.05,0,0));

//

//transform.Translate(Vector3.right*0.05);

//

//transform.Translate(Vector3(0.05,0,0),Space.World);

//

//transform.Translate(Vector3.right*0.05,Space.Self);

//

//transform.Translate(Vector3((Time.deltaTime),0,0));

//

//transform.Translate(Vector3.right*Time.deltaTime);

//

*************************************************************************************************

六、旋转

//1:旋转到指定角度

//gameObject.transform.eulerAngles = Vector3(90, 0, 0);

//

//2:一直转动

//transform.Rotate(Vector3(0.05,0,0));

//

//transform.Rotate(0.05,0,0);

//

//transform.Rotate(Vector3.right*0.05);

//

//transform.Rotate(Vector3(0.05,0,0),Space.World);

//

//transform.Rotate(Vector3.right*0.05,Space.Self);

//

//transform.Rotate(Vector3((Time.deltaTime),0,0));

//

//transform.Rotate(Vector3.right*Time.deltaTime);

//

*************************************************************************************************

七、颜色

//renderer.material.color = Color.red;

//

//renderer.material.color = Color(1,0,0,0);

//

//renderer,material.color = d;

//

*************************************************************************************************

八、贴图

//renderer.material.mainTexture = e;

//}

//

*************************************************************************************************

//

九、控制器

//if(Input.GetKey(KeyCode.W)){

//

//}//W”大写

//

//if(Input.GetKey("w")){

//

//}//w”小写

//

//if(Input.GetKeyDown(KeyCode.W)){

//

//}//按下按钮后执行

//

//if(Input.GetKeyUp(KeyCode.W)){

//

//}//松开按钮后执行

*************************************************************************************************

//

十、物体消失

//Destroy(gameObject,5)   //5”为时间

//Destroy(gameObject)     //第二种写法(两种写法都不能写在Update函式下)

*************************************************************************************************

//

十一、映出字符

//Print("abc")//引号内字符原样映出

//Print(abc);//映出括号内字符所代表的数据

//

*************************************************************************************************

//十二、判断

//{==判断是否等于

// !=不等于

// =等于

//}

//

*************************************************************************************************

十三、生成预置物

//GameObject.Instantiate(预置物,坐标,角度);

//1:子弹的生成

//var zidan : Rigidbody;(预置物子弹必须是刚体)

//var weizhi : Transform;(用空物体来确定位置)

//var wuti : Rigidbody;(生成物(发射出的子弹)对应的也是刚体)

//function Update () {

// 

//if (Input.GetMouseButtonDown(0)){(按下鼠标左键,Down是按下只触发一次)

//wuti = GameObject.Instantiate(zidan,weizhi.position,weizhi.rotation);(固定格式,生成物=生成物体(他的预置物,坐标,角度))

//wuti.velocity = weizhi.forward * 50;(生成物体的速度 空物体的前进方向×50

//Destroy(wuti.gameObject,5) ;(消失(生成物的物体,时间)表示生成的子弹5秒后消失)

//}

//}

//2:汽油桶爆炸生成爆炸效果

//var baozha : GameObject;(指定爆炸效果的预置物)

//var youtong : Transform;(指定要爆炸的油桶)

//

//function OnTriggerStay (other : Collider) {(碰撞函式(碰撞后发生以下结果))

//if(other.tag == "zidan"){(要想油桶之碰到子弹爆炸需要建立新标签(如zidan),然后将预置物子弹的标签设置为zidan)

//var shengchengwu: GameObject = GameObject.Instantiate(baozha,youtong.position,youtong.rotation);(爆炸效果=复制物体(他的预置物,坐标,角度))

//gameObject.renderer.enabled = false;(游戏物体的渲染器的开关=关)

//gameObject.collider.enabled = false;(游戏物体的碰撞机的开关=关)

//Destroy(gameObject,2);(消失(本体,时间))

//Destroy(other);(消失(碰撞他的物体))

//}

//}

//**************************************************************************************************

//十四、切换狙击模式

//1、计算屏幕的宽高比例为aa

//①鼠标右键控制是否狙击

//②如果是狙击模式 判断屏幕宽高的比例

//    <1.5 选择图片4:3 {4:3的图片.gameObject.active = true;

16:9的图片.gameObject.active = false;

4:3的图片.PixelInset.width = 屏幕宽

如果比值aa{ 4:3的图片.PixelInset.height = 屏幕高

//>1.5 选择图片16:9{16:9的图片.gameObject.active = true;

 4:3的图片.gameObject.active = false;

 16:9的图片.PixelInset.width = 屏幕宽

 16:9的图片.PixelInset.height = 屏幕高

//将相机FieldOfView值调整为10

//③如果不是狙击模式,让两个图片的active都为false。将相机的FiedOfView重新调整为原来的60

//

//指令写法:

//

//var juji169 : GUITexture;指定169贴纸

//var juji43 : GUITexture;指定43贴纸

//var kaijing : boolean;设置开关镜为布林值

//

//function Update () {

//if(Input.GetMouseButtonDown(1)){按下鼠标右键

//kaijing = !kaijing;开关镜对调一次(如开镜变为关镜,关镜变为开镜)

//var screen : float = Screen.width*1.0/Screen.height;指定屏幕宽高比的变量为screen

//if(kaijing == true){当开关镜为开时

//if(screen < 1.5){如果屏幕宽高比小于1.5

//juji43.gameObject.active = true;4:3贴纸的开关为开

//juji169.gameObject.active = false;16:9贴纸的开关为关

//juji43.pixelInset.width = Screen.width;4:3贴纸的宽为屏幕的宽

//juji43.pixelInset.height = Screen.height;4:3贴纸的高为屏幕的高

//

//}

//else if (screen > 1.5) {当屏幕的宽高比大于1.5

//juji169.gameObject.active = true;16:9贴纸的开关为开

//juji43.gameObject.active = false;4:3贴纸的开关为关

//juji169.pixelInset.width = Screen.width;16;9贴纸的宽为屏幕的宽

//juji169.pixelInset.height = Screen.height;16:9贴纸的高为屏幕的高

//}

//gameObject.camera.fieldOfView = 10;摄像机看到的距离为10

//}

//else 当开关镜为关时

//{

//juji169.gameObject.active = false;16;9贴纸的开关为关

//juji43.gameObject.active = false;4:3贴纸的开关为关

//gameObject.camera.fieldOfView = 60;摄像机看到的距离为60

//}

//}

//}

//**************************************************************************************************

//十五、自动寻路

//①布置场景。所有的物体√Static(除摄像机、灯光、运动的物体)

//②在运动的物体上添加组件Navigation,添加脚本(见下面)

//③添加组件 OffMeshlink(可添加到任何物体上)

//└ Start球A}

//└ End球B}让两者用线连起来

//脚本写法

//var Target : Transform;

//

//function Update () {

//gameObject.GetComponent.<NavMeshAgent>().SetDestination(Target.position);

//}

//**************************************************************************************************

//十六、开关门(动画)

//①建立房子(门)创建父子集

//②在门上创建开门与关门的动画(ctrl+6

//③将门上的动画关掉(Play Automatically的勾去掉)

//④创建一个方块删去renderer(或者创建一个空物体添加collider)放到门前合适的位置(碰到该物体就开门,离开就关门)

//⑤在“④”的物体上创建脚本:

//var men : Animation;指定门上的动画

//function OnTriggerEnter (other : Collider){当接触到其他物体时

//if(other.tag == "ren"){如果接触的其他物体的标签为“ren”时

//men.Play("kaimen");门的动画播放“kaimen”动画

//}

//}

//function OnTriggerExit (other : Collider){当离开接触的物体时

//if(other.tag == "ren"){如果接触的其他物体的标签为“ren”时

//men.Play("guanmen");门的动画播放“guanmen”动画

//}

//}

//**************************************************************************************************

//十七、房子爆炸

//①利用“十六”中建立的房子,在父集中添加一个collider,大小与房子大小一样

//②在添加了collider的父集上添加脚本:

//var zhadan : GameObject;指定爆炸效果的预置物

//var myarray : Transform[] = new Transform[9]; 指定父子集

//

//function OnTriggerEnter (other : Collider){碰撞函式

//

//if(other.tag == "zidan"){如果碰到的物体的标签是子弹时

//var zhakai : GameObject = GameObject.Instantiate(zhadan,other.transform.position,other.transform.rotation);

生成炸开效果

//myarray = GetComponentsInChildren.<Transform>();myarray中提取组件Transform

//for(var aa in myarray){循环某个变量添加在指定的父子集中

//aa.gameObject.AddComponent.<Rigidbody>().mass = 5;变量添加刚体.密度是5

//aa.parent = null;有变量的父子集拆开

//}

//Destroy(other.gameObject);消失(碰到的物体)

//Destroy(gameObject);消失(本身)

//

//}

//}

//**************************************************************************************************

//十八、添加声音

//①在物体上添加componentaudioaudio source

//②将声音文件拖进clip

//③将play按钮的勾去掉

//volume rolloff中选择linear rolloff

//⑤在脚本上添加:

//gameObject.audio.Play();

//**************************************************************************************************

//十九、添加影像

//①建立材质球,将影像添加到材质球中

//②在场景中建立平面,将材质球加到平面中

//③写脚本:

//var aa : MovieTexture;指定电影为“aa

//

//function Update () { 函式Update

//gameObject.renderer.material.mainTexture = aa;平面的材质球为aa

//aa.Play();aa播放

//}

//**************************************************************************************************

//二十、骷髅守卫

//①制造一个骷髅

//②脚本:效果:当骷髅离人物距离低于30时,骷髅追人,超过30时,骷髅回到初始位置

//var kulou : Animation;指定骷髅(有动画)

//var player : GameObject;指定人物角色

//var juli : int = 1;指定超过30或低于30的连个变量

//private var didian : Vector3;骷髅的初始地点

//function Start () {函式Start

//kulou.animation["run"].wrapMode = WrapMode.Loop;除死亡动作“die”外其他动作都执行loop(循环)

//kulou.animation["idle"].wrapMode = WrapMode.Loop;

//kulou.animation["attack"].wrapMode = WrapMode.Loop;

//kulou.animation["dance"].wrapMode = WrapMode.Loop;

//kulou.animation["die"].wrapMode = WrapMode.Once;

//didian = kulou.transform.position;初始地点的值是骷髅的位置

//}

//

//function Update () {函式Update

//if(juli == 1){如果juli"1"

//if(Vector3.Distance(player.transform.position,kulou.transform.position)<30){ 如果距离人物与骷髅位置小于30

//kulou.transform.LookAt(player.transform.position);骷髅面向人物

//kulou.CrossFade("run");骷髅执行“run”动画

//kulou.transform.rotation.x = 0;骷髅的x轴旋转为0

//kulou.transform.rotation.z = 0;骷髅的z轴旋转为0

//kulou.transform.Translate(0,0,10*Time.deltaTime);骷髅向z轴每帧运行10距离

//}

//else{不满足如果的话(指距离大于30

//if(Vector3.Distance(kulou.transform.position,didian)>1){如果骷髅的距离与初始的地点大于1

//kulou.transform.LookAt(didian);骷髅面向初始地点

//kulou.CrossFade("run");骷髅执行“run”动画

//kulou.transform.rotation.x = 0;骷髅的x轴旋转为0

//kulou.transform.rotation.z = 0;骷髅的z轴旋转为0

//kulou.transform.Translate(0,0,10*Time.deltaTime);骷髅向z轴每帧运行10距离

//}

//else{不满足如果的的话(指距离小于1

//kulou.Play("idle");骷髅运行“idle”动画

//}

//}

//}

//if(juli == 2){如果juli是“2”时

//kulou.Play("attack");骷髅的动画为“attack”攻击

//}

//}

//function OnTriggerEnter(other : Collider){当碰到其他物体时

//juli = 2;juli2

//}

//function OnTriggerExit(other : Collider){当离开其他物体时

//juli = 1;juli1

//}

//**************************************************************************************************

//二十一、重置场景(关卡)

//Application.LoadLevel(Application.loadedLevelName);

//**************************************************************************************************

//二十二、制作血条与减血加血

//①创建角色、怪物和加血道具

//②在设定好角色怪物的移动脚本(这里用的“二十”中的骷髅守卫)

//③用PS制作血条,并导入设定好位置

//④在角色中添加脚本:

//var xuetiao : GUITexture;设定血条的贴图

//var zuidaHP : int = 1000;设定最大血量为1000

//var dangqianHP : int;设定当前血量为整数

//var changdu : float;设定血条的长度

//function Start () {start函式

//changdu = xuetiao.pixelInset.width;血条长度=血条贴图的宽

//dangqianHP = 1000;当前血量为1000

//}

//

//function Update () {update函式

//xuetiao.pixelInset.width = dangqianHP*1.0/zuidaHP*changdu;血条的宽是当前血量*1.0/最大血量*长度

//}

//⑤在骷髅守卫的武器中添加collide 与刚体并添加脚本:

//function OnTriggerEnter(other : Collider){碰撞测试

//if(other.tag == "Player"){碰撞物的标签为“Player

//if(other.GetComponent.<>().dangqianHP>0) other.GetComponent.<>().dangqianHP -= 50;

//if(other.GetComponent.<>().dangqianHP<=0) other.GetComponent.<>().dangqianHP = 0;

//}提取《④》中的dangqianHP如果大于0,就减50

//}如果小于等于0,就不变;

//⑥在加血道具中添加脚本:

//var xuanguang : GameObject;指定道具眩光的预置物

//function OnTriggerEnter (other : Collider) {碰撞函式

//if(other.tag == "Player"){碰撞物的标签为“Player

//other.GetComponent.<>().dangqianHP = 1000;血量变成1000(满)

//GameObject.Instantiate(xuanguang,transform.position,transform.rotation);生成眩光

//Destroy(gameObject);道具消失

//}

//}

//**************************************************************************************************

//二十三、for循环判断

//举例:

//for(var  i =1 i<10 ; i++){ i1i小于10的话,满足下面的条件i就加1

//for( var  j  = 1 ; j<10 ; j++ ){j1j小于10的话,满足下面的条件j就加1

//print(i + "*" + j +"=" + i*j)映出i*j=结果(99乘法表)

//}

//}

//**************************************************************************************************

//二十四、指定自定义函式

//gameObject.SendMessage("__函式名字__",__参数__){}平级,同级

//gameObject BroadcastMessage("____",____){}向下

//gameObject SendMessage Upwards("____",____){}向上

//**************************************************************************************************

//二十五、为怪物增加动态血条与掉血回血

//①沿用之前骷髅怪物与主角,在怪物头顶添加cube,拉伸成血条形状

//②将脚本添加到血条中:

//var shexiangji : GameObject;指定摄像机

//var xuetiao : Texture2D;指定血条的2D贴图

//var dangqianHP : float;设定当前HP

//var zuidaHP : float = 1000;设定最大的HP

//var xue : GameObject;指定血的预置物

//var a : int = 1;

//

//function Start () {Start函式

//xuetiao = new Texture2D(512,32);血条是创建的新2D贴图(长和宽)

//xuetiao.wrapMode = TextureWrapMode.Clamp;将贴图拉伸覆盖到血条

//dangqianHP = 1000;当前的HP1000

//}

//

//function Update () {Update函式

//gameObject.transform.LookAt(shexiangji.transform.position);让血条一直面对摄像机(让你总能看到正面的血条)

//gameObject.transform.rotation.x = 0;设置血条的角度不会因为怪物移动而抖动

//gameObject.transform.rotation.z = 0;

//

//dangqianHP += a*Time.deltaTime;当前的HP每秒恢复1滴血(自动回血)

//if(dangqianHP>=1000){当当前HP大于或等于1000

//a=0;每秒恢复0滴血(回血停止)

//}

//else{除此之外(只小于1000时)

//a=1;每秒恢复1滴血

//}

//

//var changdu = dangqianHP/zuidaHP * xuetiao.width;血条长度等于当前Hp/最大HP*血条的宽

//

//for(var x=0; x<xuetiao.width; x++){循环执行x轴从0开始,x轴小于血条的宽的话执行下面,否则+1

//for(var y=0; y<xuetiao.height; y++){循环执行y轴从0开始,y轴小于血条的宽的话执行下面,否则+1

//if(x<changdu) xuetiao.SetPixel(x,y,Color.red);   x小于血条长度的范围涂成红色

//else xuetiao.SetPixel(x,y,Color.black);         其他部位涂成黑色

//}

//}

//

//xuetiao.Apply();    血条一直应用

//gameObject.renderer.material.mainTexture = xuetiao;    知道的血条的贴图指定为上面设置好的血条贴图

//}

//function OnTriggerEnter (other : Collider){接触函式

//if(other.tag == "zidan"){当接触物的标签是子弹时

//dangqianHP -= 1;当前Hp1滴血

//if(dangqianHP <= 0){当当前HP小于或等于0

//dangqianHP = 0;当前HP变为0

//Destroy(GameObject.Find("kulou2"),2);骷髅两秒后消失

//Destroy(other.gameObject);碰撞的物体消失

//GameObject.Find("kulou2").animation.Play("die");骷髅的动画运行“死亡”

//

//}

//GameObject.Find("kulou2").animation.Play("die");骷髅的动画执行“死亡”

//var xuehua : GameObject = GameObject.Instantiate(xue,other.transform.position,other.transform.rotation);

//}生成血花在碰撞物上

//}

//**************************************************************************************************

//二十六、鼠标点击爆炸

//①鼠标点击的物体必须带有Collider

//②添加脚本:

//var shexiangji : Camera;指定摄像机

//var zhadan : GameObject;指定爆炸效果的预置物

//

//function Update () {

//if(Input.GetMouseButtonDown(0)){当按下鼠标左键时

//var hit : RaycastHit;碰撞到collider的位置

//var ray : Ray = shexiangji.ScreenPointToRay(Input.mousePosition);射线的位置是摄像机中鼠标的位置

//if(Physics.Raycast(ray,hit)){射线碰撞到的位置(鼠标到collider

//GameObject.Instantiate(zhadan,hit.point,Quaternion.identity);

//}生成爆炸(预置物,点到物体的位置,方向时固定格式)

//}

//}

//**************************************************************************************************

//二十七、GUI界面

//var myText : String

//var a : int;

//var anniuzu : String[] = ["1","2","3","4","5"];

//var anniu2 : int ;

//var anniuzu2 : String[] = ["红色","橙色","黄色","绿色","青色","蓝色","紫色"];

//var bool : boolean = true;

//var tiezhi : GUISkin;

//private var chuangkou : Rect = Rect(10,240,200,200);

//function OnGUI(){

//GUI.Label(Rect(000,000,000,00),XXXX);显示文字信息

//

//GUI.Button(Rect(000,000,000,00),XXXX);按钮(按下去只执行一次)

//

//GUI.RepeatButton(Rect(000,000,000,00),XXXX);按下去松开前一直执行

//

//my Text = GUI.TextField(Rect(x,y,width,height),xxxxX);输入文本框

//

//GUI.Label(Rect(000,000,000,00),a.ToString());映出a的字串(screen.)

//

//anniu = GUI.Toolbar(Rect(10,10,500,50),anniu,anniuzu);映出一排按钮

//

//GUI.Label(Rect(250,70,100,50),"按钮"+anniu.ToString());显示按钮的字串

//

//anniu2 = GUI.SelectionGrid(Rect(10,130,500,500),anniu2,anniuzu2,3);映出好几排按钮,每排3

//

//GUI.Label(Rect(10,640,100,50),"你选择了"+anniu2[anniuzu2]]);显示按钮所代表的意思

//

//bool = GUI.Toggle(Rect(10,280,100,50),bool,"开关");开关按钮

//

//GUI.Button(Rect(Input.mousePosition.x-10,Screen.height-Input.mousePosition.y-10,20,20),"");按钮跟踪鼠标

//

//yinliang = GUI.HorizontalSlider(Rect(10,270,150,20),yinliang,0.0,10.0);横滑条(坐标,变量,起始点,结束点)

//

//yinliang = GUI.HorizontalScrollbar(Rect(10,300,150,30),yinliang,3.0,0.0,13.0);(坐标,变量,滑条宽,起始点,结束点)

//

//GUI.Label(Rect(170,270,100,20),"音量"+yinliang);映出上面的数值

//

//gundong =GUI.BeginScrollView(Rect(0,0,200,200),gundong,Rect(0,0,500,500));创建滚动条

//GUI.EndScrollView();两个同时出现,固定格式,写在两者之间的指令被滚动条操控

//

//chuangkou = GUI.Window(0,chuangkou,windows,"道具栏");写窗口,指到另一个函式(id不能重复“0”为id)

//function windows (id : int){在被指定的函式中写的指令将出现在窗口中

//GUI.Button(Rect(10,30,180,30),"道具");添加一个“道具”按钮

//GUI.DragWindow();这个窗口可以被鼠标拖动

//}

//

//GUI.skin = tiezhi;

//GUI.skin = null;夹在之间的按钮变贴图

//GUI.DrawTexture(Rect(0,0,Screen.width,Screen.height),f);贴纸

//}

//function OnGUI () {切换关卡

//if(GUI.Button(Rect(Screen.width/2-50,Screen.height/2-200,100,50),"下一关3")){ 按这个按钮

//Application.LoadLevel("youxi3");到youxi3的场景

//}

//if(GUI.Button(Rect(Screen.width/2-50,Screen.height/2,100,50),"退出")){ 按这个按钮

//Application.Quit();退出游戏

//}

//}

//

//创建进度条

//var kaiguan : boolean = false;设一个开关

//var aa : float;一个变量

//var jindutiao : GUITexture;一个GUI贴图

//function OnGUI () {

//if(GUI.Button(Rect(Screen.width/2-50,Screen.height/2-200,100,50),"下一关3")){ 如果按下这个按钮

//kaiguan = true;开关就开

//}

//GUI.Label(Rect(Screen.width/2-50,Screen.height/2-110,100,50),aa.ToString());显示aa的数值

//if(kaiguan && Application.CanStreamedLevelBeLoaded("youxi3")){如果开关为开并且读取完下一个场景

//if(Application.GetStreamProgressForLevel("youxi3") == 1){如果读取下一个场景为1

//aa = Application.GetStreamProgressForLevel("youxi3")*100;aa数值就是这个进度*100

//jindutiao.pixelInset.width = aa*3;进度条的宽是aa3倍(进度条满时宽是300

//Application.LoadLevel("youxi3");进入下一关

//}

//else{保护程式

//aa = Application.GetStreamProgressForLevel("youxi3")*100;

//jindutiao.pixelInset.width = aa*3;

//}

//}

//}

//

//创建假的进度条

//var abc : String;

//var tiao : GUITexture;

//var bool : boolean;

//abc = GUI.PasswordField(Rect(Screen.width/2-50,Screen.height/2-200,100,30),abc,"*"[0],6);输入密码的框

//GUI.Label(Rect(Screen.width/2-50,Screen.height/2-150,100,30),"请输入密码");

//if((GUI.Button(Rect(Screen.width/2-50,Screen.height/2-100,100,30),"开始游戏") || Input.GetKey(KeyCode.KeypadEnter)) && abc == "911001"){

//bool = true;

//}

//if(bool == true){

//tiao.pixelInset.width += 0.5;

//}

//if(tiao.pixelInset.width >= 300){

//Application.LoadLevel("youxi1");

//}

//if(GUI.Button(Rect(Screen.width/2-50,Screen.height/2,100,50),"退出")){

//Application.Quit();

//}

//**************************************************************************************************

//二十八、光照贴图、遮挡剔除

//window ——hightmapping光照贴图

//

//window ——Occlusion culling遮挡剔除

//**************************************************************************************************

//二十九、随机数和取整数

//Random.value; 0-1随机小数;

//Random.Range(min,max);自定义最小数和最大数

//

//Mathf.FloorToInt();取靠左端最近的整数(如3.934.14

//CeilToInt();取靠右端最近的整数(如5.167.98

//RoundToInt四舍五入(如1.411.52

//**************************************************************************************************

//三十、位置检测

//if(Rect(x,x,x,x).Contains(Vector2(x,x))){一个2维的点进入一个区域后映出123

//print("123");

//}

//**************************************************************************************************

//三十一、人物跟随鼠标

人物跟随鼠标移动

//

//private var moveSpeed:int=50;//相机移动速度

//

//var player:Transform;//定义一个人物的Transform

//var playerPlane:Plane;//定义一个Plane

//

//function Start()

//{

//playerPlane=Plane(player.up,player.position);//在人物所在位置,以人物的Vector3.up为法线创建一个平面

//}

//

//function Update () 

//{

//transform.position+=Vector3.right*Input.GetAxis("Mouse X")*Time.deltaTime*moveSpeed;

//当鼠标平移时,相机随之平移(或右移或左移)

//transform.position+=Vector3.forward*Input.GetAxis("Mouse Y")*Time.deltaTime*moveSpeed;

//当鼠标纵移时,相机随之纵移(或上移或下移)

//

//var targetposition=player.TransformPoint(Vector3(0,48.8,-30));

//transform.position=targetposition;//相机的目标位置,这两句代码的作用是让人物一直处于相机的视野下

//PlayerMove();

//

//}

//

////将鼠标在屏幕某一位置的坐标转化为鼠标在世界空间里该位置的坐标

//function PlayerMove()

//{

//var cursorScreenPosition:Vector3=Input.mousePosition;//鼠标在屏幕上的位置

//var ray:Ray=Camera.main.ScreenPointToRay(cursorScreenPosition);

//在鼠标所在的屏幕位置发出一条射线(暂名该射线为x射线)

//var dist:float;//定义一个float变量(该变量会在下面的代码里用到)

//playerPlane.Raycast(ray,dist);

//人物所在平面与x射线相交(作用是得到x射线与人物所在平面相交时,x射线射出多远---即得到dist的值)

//var targetposition:Vector3=ray.GetPoint(dist);

//x射线这条射线上,距离起点dist处的点(该点即为鼠标在世界空间里的坐标)

//player.LookAt(targetposition) //人物随着鼠标转动

//player.position=Vector3.MoveTowards(player.position,targetposition,Time.deltaTime*2);

//人物坐标移动到鼠标所在世界空间的坐标

//}

//**************************************************************************************************

//三十二、储存读取游戏数据

//PlayerPrefs.SetString("key",b);//储存,b为储存的数据数字或文字

//PlayerPrefs.GetString("key",b);//读取

//**************************************************************************************************

//三十三、反光渲染

//①、添加脚本FirstMouseControl.js

//#pragma strict

//class RenderCubemapWizard extends ScriptableWizard {

//    var renderFromPosition : Transform;

//    var cubemap : Cubemap;

//    

//    function OnWizardUpdate () {

//        helpString = "Select transform to render from and cubemap to render into";

//        isValid = (renderFromPosition != null) && (cubemap != null);

//    }

//    

//    function OnWizardCreate () {

//        // create temporary camera for rendering

//        var go = new GameObject( "CubemapCamera", Camera );

//        // place it on the object

//        go.transform.position = renderFromPosition.position;

//        go.transform.rotation = Quaternion.identity;

//

//        // render into cubemap        

//        go.camera.RenderToCubemap( cubemap );

//        

//        // destroy temporary camera

//        DestroyImmediate( go );

//    }

//    

//    @MenuItem("GameObject/Render into Cubemap")

//    static function RenderCubemap () {

//        ScriptableWizard.DisplayWizard.<RenderCubemapWizard>(

//            "Render cubemap", "Render!");

//    }

//}

//②、建好cube

//③、建好cubemap   Create>Cubemap

//④、在GameObject中选择 Render into Cubemap,将建好的cubecubemap拖入

//⑤、新建材质球,拖至cube中,Shader选项选择Reflective>VertexLit,将cubemap拖入



转载自博客  http://devilnotcry.blog.163.com/blog/static/6477482120143121242409/

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lihui061119/article/details/37658849

智能推荐

【数据采集与数据清洗】课堂笔记_scribe数据采集-程序员宅基地

文章浏览阅读3.4k次,点赞4次,收藏40次。第一章 大数据概述1.1 进入大数据时代的原因第三次信息化浪潮信息科技为大数据时代提供支撑1)存储设备容量不断增加2)CPU处理能力大幅提升3)网络带宽不断增加数据产生方式的变革促成大数据时代来临1.2 大数据概念:大数据不仅仅是数据的“大量化”,而是包含“快速化”“多样化”和 “价值化”等多重属性1.3 大数据应用大数据关键技术1)大数据处理过程:大数据采集-大数据预处理-大数据存储-大数据分析与挖掘-大数据可视化2)大数据技术体系:数据采集与预处理技术,分布式数据存储技._scribe数据采集

c/c++动态指定sprintf字符串的宽度_sprintf 指定宽度-程序员宅基地

文章浏览阅读1.4k次。sprintf函数可用*号指定字符串的长度 int width = 8; char *buf = new char[width+1]; sprintf(buf, "%0*d", width, 1); cout << buf << endl; delete buf;输出结果:00000001_sprintf 指定宽度

JEECG - 基于代码生成器的J2EE智能开发框架 续六 JEECG 前台页面和后台交互讲解_easyui代码生成器 java-程序员宅基地

文章浏览阅读291次。JEECG - 基于代码生成器的J2EE智能开发框架 续六 JEECG 前台页面和后台交互讲解_easyui代码生成器 java

MFC90条技巧-带目录_mfc status message-程序员宅基地

文章浏览阅读2.3k次。1."属性页的添加:2."List Control中标题栏(Column)的添加:3."ToolBar和StatusBar中控件的添加:4."通过Control创建的控件,对其属性的动态控制:5."窗口的分割与停靠:6. ①怎样在程序开始的时候让它最大化?②vc++做出来的exe文件在窗体的右上方是没有最大化和最小化按钮的,怎样实现这一功能?_mfc status message

C++ 构造函数和析构函数 详解_c构造函数和析构函数-程序员宅基地

文章浏览阅读2.3w次,点赞145次,收藏780次。C++中用构造函数和析构函数来初始化和清理对象,这两个函数将会被编译器自动调用。对象的初始化和清理是非常重要的,如果我们不提供构造函数与析构函数,编译器会自动提供两个函数的空实现。............_c构造函数和析构函数

C++11 多线程_c11多线程打印abc十次-程序员宅基地

文章浏览阅读282次。C++11开始支持多线程编程,之前多线程编程都需要系统的支持,在不同的系统下创建线程需要不同的API如pthread_create(),Createthread(),beginthread()等,使用起来都比较复杂,C++11提供了新头文件、、、等用于支持多线程。使用C++11开启一个线程是比较简单的,下面来看一个简单的例子:#include #include_c11多线程打印abc十次

随便推点

关于今天解决IE6样式兼容及.net3.5网站发布问题-程序员宅基地

文章浏览阅读128次。1.上下两个div在ie6下有间距,但在ie7下正常,如何修正? overflow:hidden 两个DIV的样式加上这个overflow:hidden,或者上面的DIV加上这个 2.ie6下png图片和png背景透明 参考资料:http://mynee.blogbus.com/logs/24109302.html 3.区别不同浏览器,CSS hack写法: ..._ie6需要哪个版本.net framework

Python + Selenium: expected_conditions介绍_python selenium expected_conditions-程序员宅基地

文章浏览阅读9.9k次,点赞16次,收藏71次。expected_conditions是Selenium的一个模块,selenium.webdriver.support.expected_conditions,可以对网页上元素是否存在,可点击等等进行判断,一般用于断言或与WebDriverWait配合使用。上一次介绍WebDriverWait的时候就曾经提过,WebDriverWait中的until()和until_not()中的方法,必须是可..._python selenium expected_conditions

Chrome 控制台的console用法收集_谷歌浏览器console下面如何查找-程序员宅基地

文章浏览阅读1k次。Chrome 控制台console的用法大家都有用过各种类型的浏览器,每种浏览器都有自己的特色,本人拙见,在我用过的浏览器当中,我是最喜欢Chrome的,因为它对于调试脚本及前端设计调试都有它比其它浏览器有过之而无不及的地方。可能大家对console.log会有一定的了解,心里难免会想调试的时候用alert不就行了,干嘛还要用console.log这么一长串的字符串来替代alert输出_谷歌浏览器console下面如何查找

移动端web使用了input type=file点击却无法打开文件选择器(vue)_html 的input 在夸克浏览器中无法使用选择文件-程序员宅基地

文章浏览阅读4k次。**问题:**移动端web使用了input type=file点击却无法打开文件选择器(vue),找了好一会才找到问题所在,原因是在input的上级元素上的事件上添加了阻止默认事件。去掉之后就可以打开了。_html 的input 在夸克浏览器中无法使用选择文件

命令模式—C++实现撤消重做_c++中撤销和恢复的设计逻辑-程序员宅基地

文章浏览阅读5.7k次,点赞3次,收藏23次。Command结构 意图 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。适用性 1、抽象出待执行的动作以参数化某对象,你可用过程语言中的回调(c a l l b a c k )函数表达这种参数化机制。所谓回调函数是指函数先在某处注册,而它将在稍后某个需要的时候被调用。C o m m a n d 模式是回调机制的一个面向对象的替_c++中撤销和恢复的设计逻辑

移动通信核心网络技术总结(三)EPC网络的结构及原理_epc网络架构图-程序员宅基地

文章浏览阅读1.2w次,点赞11次,收藏128次。核心网络技术总结(三)EPC网络原理EPC网络结构及功能EPC网络中存在着以下几个网元:eNodeB、MME、HSS、PCRF、SGW、PGW我们可以拿坐火车的过程进行类比,我们把数据比作乘客,那么eNodeB就相当于火车站,数据从eNodeB上车。MME和HSS就相当于火车站的播报员和管理员,他们告诉你在哪个候车厅上车、车去哪里。当你知道去哪里候车后,要通过SGW上车,SGW就相当于检票口,过了这个口数据就从用户端到达了PDN端,相当于上了火车通过这里前往别的省份, PDN将带领你前_epc网络架构图