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

智能推荐

class和struct的区别-程序员宅基地

文章浏览阅读101次。4.class可以有⽆参的构造函数,struct不可以,必须是有参的构造函数,⽽且在有参的构造函数必须初始。2.Struct适⽤于作为经常使⽤的⼀些数据组合成的新类型,表示诸如点、矩形等主要⽤来存储数据的轻量。1.Class⽐较适合⼤的和复杂的数据,表现抽象和多级别的对象层次时。2.class允许继承、被继承,struct不允许,只能继承接⼝。3.Struct有性能优势,Class有⾯向对象的扩展优势。3.class可以初始化变量,struct不可以。1.class是引⽤类型,struct是值类型。

android使用json后闪退,应用闪退问题:从json信息的解析开始就会闪退-程序员宅基地

文章浏览阅读586次。想实现的功能是点击顶部按钮之后按关键字进行搜索,已经可以从服务器收到反馈的json信息,但从json信息的解析开始就会闪退,加载listview也不知道行不行public abstract class loadlistview{public ListView plv;public String js;public int listlength;public int listvisit;public..._rton转json为什么会闪退

如何使用wordnet词典,得到英文句子的同义句_get_synonyms wordnet-程序员宅基地

文章浏览阅读219次。如何使用wordnet词典,得到英文句子的同义句_get_synonyms wordnet

系统项目报表导出功能开发_积木报表 多线程-程序员宅基地

文章浏览阅读521次。系统项目报表导出 导出任务队列表 + 定时扫描 + 多线程_积木报表 多线程

ajax 如何从服务器上获取数据?_ajax 获取http数据-程序员宅基地

文章浏览阅读1.1k次,点赞9次,收藏9次。使用AJAX技术的好处之一是它能够提供更好的用户体验,因为它允许在不重新加载整个页面的情况下更新网页的某一部分。另外,AJAX还使得开发人员能够创建更复杂、更动态的Web应用程序,因为它们可以在后台与服务器进行通信,而不需要打断用户的浏览体验。在Web开发中,AJAX(Asynchronous JavaScript and XML)是一种常用的技术,用于在不重新加载整个页面的情况下,从服务器获取数据并更新网页的某一部分。使用AJAX,你可以创建异步请求,从而提供更快的响应和更好的用户体验。_ajax 获取http数据

Linux图形终端与字符终端-程序员宅基地

文章浏览阅读2.8k次。登录退出、修改密码、关机重启_字符终端

随便推点

Python与Arduino绘制超声波雷达扫描_超声波扫描建模 python库-程序员宅基地

文章浏览阅读3.8k次,点赞3次,收藏51次。前段时间看到一位发烧友制作的超声波雷达扫描神器,用到了Arduino和Processing,可惜啊,我不会Processing更看不懂人家的程序,咋办呢?嘿嘿,所以我就换了个思路解决,因为我会一点Python啊,那就动手吧!在做这个案例之前先要搞明白一个问题:怎么将Arduino通过超声波检测到的距离反馈到Python端?这个嘛,我首先想到了串行通信接口。没错!就是串口。只要Arduino将数据发送给COM口,然后Python能从COM口读取到这个数据就可以啦!我先写了一个测试程序试了一下,OK!搞定_超声波扫描建模 python库

凯撒加密方法介绍及实例说明-程序员宅基地

文章浏览阅读4.2k次。端—端加密指信息由发送端自动加密,并且由TCP/IP进行数据包封装,然后作为不可阅读和不可识别的数据穿过互联网,当这些信息到达目的地,将被自动重组、解密,而成为可读的数据。不可逆加密算法的特征是加密过程中不需要使用密钥,输入明文后由系统直接经过加密算法处理成密文,这种加密后的数据是无法被解密的,只有重新输入明文,并再次经过同样不可逆的加密算法处理,得到相同的加密密文并被系统重新识别后,才能真正解密。2.使用时,加密者查找明文字母表中需要加密的消息中的每一个字母所在位置,并且写下密文字母表中对应的字母。_凯撒加密

工控协议--cip--协议解析基本记录_cip协议embedded_service_error-程序员宅基地

文章浏览阅读5.7k次。CIP报文解析常用到的几个字段:普通类型服务类型:[0x00], CIP对象:[0x02 Message Router], ioi segments:[XX]PCCC(带cmd和func)服务类型:[0x00], CIP对象:[0x02 Message Router], cmd:[0x101], fnc:[0x101]..._cip协议embedded_service_error

如何在vs2019及以后版本(如vs2022)上添加 添加ActiveX控件中的MFC类_vs添加mfc库-程序员宅基地

文章浏览阅读2.4k次,点赞9次,收藏13次。有时候我们在MFC项目开发过程中,需要用到一些微软已经提供的功能,如VC++使用EXCEL功能,这时候我们就能直接通过VS2019到如EXCEL.EXE方式,生成对应的OLE头文件,然后直接使用功能,那么,我们上篇文章中介绍了vs2017及以前的版本如何来添加。但由于微软某些方面考虑,这种方式已被放弃。从上图中可以看出,这一功能,在从vs2017版本15.9开始,后续版本已经删除了此功能。那么我们如果仍需要此功能,我们如何在新版本中添加呢。_vs添加mfc库

frame_size (1536) was not respected for a non-last frame_frame_size (1024) was not respected for a non-last-程序员宅基地

文章浏览阅读785次。用ac3编码,执行编码函数时报错入如下:[ac3 @ 0x7fed7800f200] frame_size (1536) was not respected for anon-last frame (avcodec_encode_audio2)用ac3编码时每次送入编码器的音频采样数应该是1536个采样,不然就会报上述错误。这个数字并非刻意固定,而是跟ac3内部的编码算法原理相关。全网找不到,国内音视频之路还有很长的路,音视频人一起加油吧~......_frame_size (1024) was not respected for a non-last frame

Android移动应用开发入门_在安卓移动应用开发中要在活动类文件中声迷你一个复选框变量-程序员宅基地

文章浏览阅读230次,点赞2次,收藏2次。创建Android应用程序一个项目里面可以有很多模块,而每一个模块就对应了一个应用程序。项目结构介绍_在安卓移动应用开发中要在活动类文件中声迷你一个复选框变量

推荐文章

热门文章

相关标签