版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、-作者xxxx-日期xxxxUnity3D常用脚本【精品文档】场景转换:var screenbutton: boolean;function Start() DontDestroyOnLoad(this);screenbutton = true;function Update () if(Input.GetKeyDown(KeyCode.Escape) screenbutton = true;function OnGUI() if(screenbutton=true) if(GUI.Button(Rect(Screen.width/2-380,Screen.height/2-190,60,50
2、),Scene1) print(You click Scene1); Application.LoadLevel (1); screenbutton = false; else if(GUI.Button(Rect(Screen.width/2-380,Screen.height/2-130,60,50),Scene2) print(You click Scene2); Application.LoadLevel (2); screenbutton = false; else if( GUI.Button(Rect(Screen.width/2-375,Screen.height/2-0,50
3、,50),Quit) print(You click Quit); Application.Quit(); 心得:场景转换时,这个程序贴在按钮界面场景中。在Build Setting(导出)(在File下)菜单中加入所需场景。0为按钮界面。可以无限增加场景。 else if(GUI.Button(Rect(Screen.width/2-380,Screen.height/2-130,60,50),Scene2) print(You click Scene2); Application.LoadLevel (2); screenbutton = false;复制此段程序并做修改。运动控制键:上下
4、左右var TankSpeed:int = 20;function Update () if(Input.GetKey(KeyCode.W) print(go); transform.Translate(Vector3.forward * Time.deltaTime * TankSpeed);else if(Input.GetKey(KeyCode.S) print(go back); transform.Translate(Vector3.forward * Time.deltaTime * -TankSpeed);else if(Input.GetKey(KeyCode.A) print
5、(turn left); transform.Rotate(Vector3.up * Time.deltaTime * -TankSpeed);else if(Input.GetKey(KeyCode.D) print(turn right); transform.Rotate(Vector3.up * Time.deltaTime * TankSpeed);需要放在第一视角的物体或者摄像机上。加天空背景:菜单栏Component下的Rendering下的Skybox。将他加在所需场景的摄像机上,选择所需的天空。运行时自然出现。各种按钮汇总:鼠标碰触后显示说明文字。function OnGUI
6、 () GUI.Button (Rect (0, 0, 100, 20), GUIContent (Click me, This is the tooltip); GUI.Label (Rect (0, 40, 100, 40), GUI.tooltip); 多项选择,以上都选择。var allOptions = true;var extended1 = true;var extended2 = true;function OnGUI () allOptions = GUI.Toggle (Rect (0,120,150,20), allOptions, Edit All Options);G
7、UI.enabled = allOptions;e (Rect (20,70,130,20), extended1, Extended Option 1);extended2 = GUI.Toggle (Rect (20,90,130,20), extended2, Extended Option 2);GUI.enabled = true;if (GUI.Button (Rect (0, 160, 150, 20), Ok);print (user clicked ok);鼠标碰触第一个按钮有解释,鼠标碰触第三个对话框有解释。碰第二个没有解释。function OnGUI () GUI.Bo
8、x (Rect (5, 300, 110, 75), GUIContent (Box, This box has a tooltip);GUI.Button (Rect (10, 230, 100, 20), No tooltip here);GUI.Button (Rect (10, 200, 100, 20),GUIContent (I have a tooltip, The button overrides the box);GUI.Label (Rect (10,260,100,40), GUI.tooltip); 半透明,说明性文字对话框。无选择。function Update ()
9、 function OnGUI () GUI.BeginGroup (new Rect (Screen.width / 2 - 400, Screen.height / 2 - 300, 800, 600);GUI.Box (new Rect (0,0,800,600),This box is now centered! - here you would put your main menu);GUI.EndGroup ();滚动条,选择按钮。可以放多个按钮并且节省位置。function Update () var scrollPosition = Vector2.zero;function
10、OnGUI () 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.EndScroll
11、View (); 循环的字幕。var letterPause = 0.2;/定义每个字出现的时间间隔 var sound : AudioClip;/打字机的声音 private var word;/存储你打字机效果想要输出的字的变量 private var Text : String = My name is Ray Yang.Keep it in your heart!;/你希望打字机效果输出的字 function Start () word = Text;/把你输出的字先赋值给word Text = ;/把你要显示的字先抹除,以便你可以在最初显示的时候显示为空,当然你也可以加上其他字,让他
12、先显示,打字机效果打的字会显示在这个后面 yield WaitForSeconds (2); TypeText (); function OnGUI () GUI.Label (Rect(150,15,250,25),Please answer my question,who am I?); GUI.Box (Rect(150,40,250,25),Text); function TypeText () for (var letter in word.ToCharArray() /做一个循环,定义一个变量letter逐次等于word中的每一个字符 Text += letter;/把这些字赋值给
13、Text if (sound)/控制声音,出现一个字,发一个声音 audio.PlayOneShot (sound); yield WaitForSeconds (letterPause); function Update () if(Text = word) Text=; TypeText(); 有打字声音的字幕循环。var screnbutton:boolean;var icon : Texture;var allOptions = true;var extended1 = true;var extended2 = true;var letterPause = 0.2;/定义每个字出现的时
14、间间隔 var sound : AudioClip;/打字机的声音 private var word;/存储你打字机效果想要输出的字的变量 static var Text : String = This is zcx first project! I can do it.;var del : boolean = false;var particle : GameObject;function Start()DontDestroyOnLoad(this);screnbutton=true;word = Text;Text = ;yield WaitForSeconds (2); TypeText
15、 (); function Update () if(Input.GetKeyDown(KeyCode.Escape)screnbutton=true;if( Text = This is zcx first project! I can do it. )Text = ; TypeText (); if(Input.GetMouseButtonDown(0)Text = ;for (var c : char in Input.inputString) / Backspace - Remove the last characterif (c = b) if (guiText.text.Lengt
16、h != 0)guiText.text = guiText.text.Substring(0, guiText.text.Length - 1);/ End of entryelse if (c = n) print (User entered his name: + guiText.text);/ Normal text input - just append to the endelse guiText.text += c;function OnGUI()if(screnbutton=true)if(GUI.Button(Rect(Screen.width/2-30,Screen.heig
17、ht/2-30,60,50),scene1)print(you click Scene 1);Application.LoadLevel (1);screnbutton=false;else if(GUI.Button(Rect(Screen.width/2-30,Screen.height/2+30,60,50),scene2)print(you click Scene 2);Application.LoadLevel (2);screnbutton=false;else if(GUI.Button(Rect(Screen.width/2-30,Screen.height/2+90,60,5
18、0),scene3)print(you click Scene 3);Application.LoadLevel (3);screnbutton=false;else if(GUI.Button(Rect(Screen.width/2-30,Screen.height/2+150,60,50),Quit)print(you click Quit);Application.Quit();/GUI.Button (Rect (0, 0, 100, 20), Click Me);GUI.Button (Rect (0, 0, 100, 20), GUIContent (Click me,This i
19、s the tooltip); GUI.Label (Rect (0, 20, 100, 40), GUI.tooltip);allOptions = GUI.Toggle (Rect (40,40,150,20), allOptions, Edit All Options); GUI.enabled = allOptions;extended1 = GUI.Toggle (Rect (60,60,130,20), extended1, Extended Option 1);extended2 = GUI.Toggle (Rect (60,80,130,20), extended2, Exte
20、nded Option 2);GUI.enabled = true;if (GUI.Button (Rect (40, 100, 150, 20), Ok)print (user clicked ok);GUI.BeginGroup (new Rect (Screen.width / 2 - 400, Screen.height/2-300,800,600);GUI.Box (new Rect (0,0,800,600), This box is now centered!-here you would put your main menu);GUI.EndGroup (); GUI.Labe
21、l (Rect(250,75,250,25),Please introduce your objec!);GUI.Box (Rect(250,100,250,25),Text); function TypeText () for (var letter in word.ToCharArray() /做一个循环,定义一个变量letter逐次等于word中的每一个字符 Text += letter;/把这些字赋值给Text if (sound)/控制声音,出现一个字,发一个声音neShot (sound); yield WaitForSeconds (letterPause); 主板游戏系列程序:
22、CameraMoveRotate(第一视角界面场景自控程序)使用时点击鼠标右键可以自由转换视角。同时点击AWSD键可以控制前进后退,向左向右。C#程序。using UnityEngine;using System.Collections;/ MouseLook rotates the transform based on the mouse delta./ Minimum and Maximum values can be used to constrain the possible rotation/ To make an FPS style character:/ - Create a c
23、apsule./ - Add a rigid body to the capsule/ - Add the MouseLook script to the capsule./ - Set the mouse look to use LookX. (You want to only turn character but not tilt it)/ - Add FPSWalker script to the capsule/ - Create a camera. Make the camera a child of the capsule. Reset its transform./ - Add
24、a MouseLook script to the camera./ - Set the mouse look to use LookY. (You want the camera to tilt up and down like a head. The character already turns.)AddComponentMenu(Camera-Control/Mouse Look)public class CameraMoveRotate : MonoBehaviour public enum RotationAxes MouseXAndY = 0, MouseX = 1, Mouse
25、Y = 2 public RotationAxes axes = RotationAxes.MouseXAndY;public float sensitivityX = 15F;public float sensitivityY = 15F;public float minimumX = -360F;public float maximumX = 360F;public float minimumY = -60F;public float maximumY = 60F;public float moveSpeed = 5.0F;float rotationX = 0F;float rotati
26、onY = 0F;Quaternion originalRotation;void Update ()/鼠标控制的转向if( !Input.GetMouseButton(1) )return;elseif (axes = RotationAxes.MouseXAndY)/ Read the mouse input axisrotationX += Input.GetAxis(Mouse X) * sensitivityX;rotationY += Input.GetAxis(Mouse Y) * sensitivityY;rotationX = ClampAngle (rotationX, m
27、inimumX, maximumX);rotationY = ClampAngle (rotationY, minimumY, maximumY);Quaternion xQuaternion = Quaternion.AngleAxis (rotationX, Vector3.up);Quaternion yQuaternion = Quaternion.AngleAxis (rotationY, -Vector3.right);transform.localRotation = originalRotation * xQuaternion * yQuaternion;else if (ax
28、es = RotationAxes.MouseX)rotationX += Input.GetAxis(Mouse X) * sensitivityX;rotationX = ClampAngle (rotationX, minimumX, maximumX);Quaternion xQuaternion = Quaternion.AngleAxis (rotationX, Vector3.up);transform.localRotation = originalRotation * xQuaternion;elserotationY += Input.GetAxis(Mouse Y) *
29、sensitivityY;rotationY = ClampAngle (rotationY, minimumY, maximumY);Quaternion yQuaternion = Quaternion.AngleAxis (-rotationY, Vector3.right);transform.localRotation = originalRotation * yQuaternion; /键盘控制的运动float x = Input.GetAxis(Horizontal) * Time.deltaTime * moveSpeed;float z = Input.GetAxis(Ver
30、tical) * Time.deltaTime * moveSpeed;te(x, 0, z);void Start ()/ Make the rigid body not change rotationif (rigidbody)rigidbody.freezeRotation = true;originalRotation = transform.localRotation;public static float ClampAngle (float angle, float min, float max)if (angle 360F)angle -= 360F;return Mathf.C
31、lamp (angle, min, max);Unity3d闪烁灯光脚本也可以用unity3d做舞厅效果。把脚本扔给灯光就可以了。1. using UnityEngine;2. using System.Collections;3. RequireComponent( typeof( Light ) )4. public class flickeringLight : MonoBehaviour5. 6. / Flickering Styles7. public enum flickerinLightStyles CampFire = 0, Fluorescent = 1 ;8. public
32、 flickerinLightStyles flickeringLightStyle = flickerinLightStyles.CampFire;9. / Campfire Methods10. public enum campfireMethods Intensity = 0, Range = 1, Both = 2 ;11. public campfireMethods campfireMethod = campfireMethods.Intensity;12. / Intensity Styles13. public enum campfireIntesityStyles Sine
33、= 0, Random = 1 ;14. public campfireIntesityStyles campfireIntesityStyle = campfireIntesityStyles.Random;15. / Range Styles16. public enum campfireRangeStyles Sine = 0, Random = 1 ;17. public campfireRangeStyles campfireRangeStyle = campfireRangeStyles.Random;18. / Base Intensity Value19. public flo
34、at CampfireIntensityBaseValue = 0.5f;20. / Intensity Flickering Power21. public float CampfireIntensityFlickerValue = 0.1f;22. / Base Range Value23. public float CampfireRangeBaseValue = 10.0f;24. / Range Flickering Power25. public float CampfireRangeFlickerValue = 2.0f;26. 27. / If Style is Sine28.
35、 private float CampfireSineCycleIntensity = 0.0f;29. private float CampfireSineCycleRange = 0.0f;30. / Glow Speeds31. public float CampfireSineCycleIntensitySpeed = 5.0f;32. public float CampfireSineCycleRangeSpeed = 5.0f;33. public float FluorescentFlickerMin = 0.4f;34. public float FluorescentFlic
36、kerMax = 0.5f;35. public float FluorescentFlicerPercent = 0.95f;36. / NOT IMPLEMENTED YET !37. public bool FluorescentFlickerPlaySound = false;38. public AudioClip FluorescentFlickerAudioClip;39. / -40.41.42. / Use this for initialization43. void Start () 44. 45. 46. 47. / Update is called once per
37、frame48. void Update () 49. switch( flickeringLightStyle )50. 51. / If Flickering Style is Campfire52. case flickerinLightStyles.CampFire:53. / If campfire method is Intesity OR Both54. if( campfireMethod = campfireMethods.Intensity | campfireMethod = campfireMethods.Both )55. 56. / If Intensity sty
38、le is Sine57. if( campfireIntesityStyle = campfireIntesityStyles.Sine )58. 59. / Cycle the Campfire angle60. CampfireSineCycleIntensity += CampfireSineCycleIntensitySpeed;61. if( CampfireSineCycleIntensity 360.0f ) CampfireSineCycleIntensity = 0.0f;62. / Base + Values63. ensity = CampfireIntensityBaseValue + ( ( Mathf.Sin( CampfireSineCycleIntensity * Mathf.Deg2Rad ) * ( CampfireIntensityFlick
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 微专题4+等差数列、等比数列课件-2025届高考数学二轮复习
- 新华区事业编考试真题及答案
- 2026二年级数学 苏教版数学乐园综合实践一
- 物质酸碱性的试卷及答案
- 保安室岗位制度
- 柳州六年级模拟考试题及答案
- 黄冈地理生物试题及答案
- 2025 高中信息技术数据与计算在历史研究课件
- 考核标准合格奖惩制度
- 校园双控考核奖惩制度
- 《基于FCFF模型的三一重工企业价值评估的案例分析报告》16000字【论文】
- 客运公司安全生产培训和教育学习制度
- 攻读博士学位期间材料科学研究计划参考范文
- 2023陆上石油天然气停产井安全风险防控指南
- DB32∕T2621-2014 特大型桥梁机电工程质量检验评定规范
- 三氧化硫泄露现场预案(6篇)
- 西方社会学理论教案
- 考点24 人与环境-五年(2020-2024年)高考生物学真题专项分类汇编
- 概率论与数理统计章节练习题及答案
- 医疗设备的保养与维护
- 2024届中职对口(职教)高考语文冲刺复习题(应用文写作)(含解析)
评论
0/150
提交评论