//#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;
// //静态(在其他脚本中可以使用 方法:脚本名。i 提取)
//
//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; 指定16:9贴纸
//var juji43 : GUITexture; 指定4:3贴纸
//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); 消失(本身)
//
// }
//}
//**************************************************************************************************
//十八、添加声音
//①在物体上添加component→audio→audio 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; juli是2
//}
//function OnTriggerExit(other : Collider){ 当离开其他物体时
// juli = 1; juli是1
//}
//**************************************************************************************************
//二十一、重置场景(关卡)
//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++){ i是1,i小于10的话,满足下面的条件i就加1
// for( var j = 1 ; j<10 ; j++ ){ j是1,j小于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; 当前的HP是1000;
//}
//
//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; 当前Hp减1滴血
// 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),xxxx,X); 输入文本框
//
// 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; 进度条的宽是aa的3倍(进度条满时宽是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.9取3,4.1取4)
//CeilToInt(); 取靠右端最近的整数(如5.1取6,7.9取8)
//RoundToInt 四舍五入(如1.4取1,1.5取2)
//**************************************************************************************************
//三十、位置检测
// 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,将建好的cube和cubemap拖入
//⑤、新建材质球,拖至cube中,Shader选项选择Reflective>VertexLit,将cubemap拖入
//**************************************************************************************************
分享到:
相关推荐
虽然具体的笔记内容我们无法直接查看,但从标题和描述中我们可以推测这是一份关于Unity开发的学习资料。 Unity引擎提供了丰富的功能,包括场景编辑器、动画系统、物理引擎、光照和渲染系统,以及脚本语言(C#)支持。...
【Unity游戏开发基础】 Unity是由Unity Technologies开发的一款强大的游戏开发工具,它被广泛应用于创建三维游戏、建筑可视化、实时三维动画等多种互动内容。Unity3D是一个综合性的专业游戏引擎,支持跨平台发布,...
以下是根据这四个月学习笔记中的关键内容所提炼的详细知识点: 一月内容主要涉及Unity的基础知识: 1. Unity界面介绍:包括项目窗口、资产面板、层次视图、Inspector窗口、场景视图等基本元素的使用。 2. ...
【Unity3D游戏开发基础概览】 Unity 是一款强大的跨平台游戏开发工具,由Unity Technologies开发,被广泛用于创建各种类型的三维游戏、建筑可视化、实时三维动画等互动内容。Unity 提供了一个集成的开发环境,支持...
总的来说,Unity学习笔记一 - Survival Shooter Tutorial是一次全面的Unity入门实践,涵盖了游戏开发中的各个重要环节。通过这个教程,你不仅可以掌握Unity的基本操作,还能了解到游戏开发的完整流程,为未来的项目...
【Unity 全阶段学习笔记】 Unity 是一款强大的跨平台游戏引擎,被广泛应用于游戏开发、虚拟现实、增强现实以及各种互动体验的制作。本笔记旨在为初学者提供一个全面的Unity学习路径,从基础到进阶,涵盖环境搭建、...
本压缩包"unity学习笔记.zip"提供了关于Unity3D最常用操作的代码合集,方便开发者快速理解和应用。 首先,让我们了解一下Unity3D的基础知识。Unity是基于C#编程语言的,它提供了直观的可视化编辑器来构建场景、创建...
这些笔记内容涵盖了Unity开发的基本概念,为初学者提供了一个良好的学习起点。通过理解这些基础知识,开发者可以构建游戏对象,处理游戏逻辑,响应用户输入,并进行有效的调试。在实际项目中,还需要结合Unity的其他...
该项目为Unity3D游戏开发教程学习笔记设计源码,共计35个文件,涵盖了13个Xmind思维导图文件、7个C#源代码文件、6个文本文件、4个PNG图片文件和3个Markdown文件。内容主要围绕C#语言基础和Unity API进行,旨在帮助...
【Unity学习笔记1】 Unity是一款强大的跨平台游戏引擎,广泛应用于2D和3D游戏的开发,同时也适用于虚拟现实和增强现实项目。本笔记主要基于《Unity游戏开发(原书第3版)》进行整理,旨在帮助读者巩固和回顾所学内容...
在这个“unity学习笔记”中,我们将深入探讨Unity中的Shader编程、数据存储方法和DoTween插件的常用API。 Unity Shader是控制游戏图形表现的关键元素,它们允许开发者定制游戏的视觉效果,比如光照、纹理和粒子效果...
以上只是Unity基础操作的一部分,完整的“Unity笔记资源大全”应该还会涉及更多高级主题,如网络编程、粒子系统、地形编辑、动画混合树、Shaders、Unity的Asset Store资源等。对于任何想要进入Unity开发领域的人来说...
总之,“unity 课堂学习源码,学习笔记”是一份全面的Unity学习资源,涵盖了从基础到进阶的各个层面。通过深入学习和实践,你将能够掌握Unity的核心技术和最佳实践,为自己的游戏开发之路打下坚实的基础。
Unity Netcode是Unity引擎新推出的网络同步框架,用于构建多人在线游戏。这个实践笔记主要涵盖了两个关键方面:网络连接和玩家创建。...通过学习和实践,开发者能够掌握在Unity中创建多人在线游戏的基础技术。
1. **第一阶段:Unity基础** - **Unity环境搭建**:介绍如何安装Unity并配置开发环境。 - **C#语言基础**:讲解Unity使用的编程语言C#的基本概念和语法。 - **Unity API**:学习Unity提供的API和如何利用它们来...
Unity编辑器类学习笔记 Unity是一款强大的跨平台游戏开发引擎,不仅用于创建游戏,还提供了丰富的自定义工具和扩展功能。在Unity中,`Editor`类是开发自定义编辑器界面和工具的关键部分,它允许开发者对Inspector、...
这篇“Unity笔记最新最全适合学习”涵盖了Unity开发的核心知识点,旨在帮助初学者和进阶者深化对Unity的理解。 1. **组件(Component)**:在Unity中,一切皆为组件。Component是Unity引擎的基础,它赋予游戏对象特定...
Unity3D是一款强大的跨平台游戏开发引擎,被广泛应用于游戏开发、虚拟现实...希望以上介绍的学习笔记和案例资料能够对你有所帮助,祝你在Unity3D的学习之路上取得成功!如果有任何具体问题或需要更多帮助,请随时告诉我
这篇笔记主要涉及了在Unity3D中使用JavaScript进行脚本编写的一些基础概念和关键知识点。 首先,我们来看变量的声明。在Unity3D的JavaScript中,变量的声明通常以`var`开头,接着是变量名,然后是类型声明。例如: ...