1、 场景转换: 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
2、380,Screen.height/2-190,60,50),"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); screen
3、button = false; }else if( GUI.Button(Rect(Screen.width/2-375,Screen.height/2-0,50,50),"Quit")){ print("You click Quit"); Application.Quit(); } } 心得: 场景转换时,这个程序贴在按钮界面场景中。在Build Setting(导出)(在File下)菜单中加入所需场景。 0为按钮界面。可以无限增加场景。 }else if(GUI.Button(Rect(Screen.width/2-380,S
4、creen.height/2-130,60,50),"Scene2")){ print("You click Scene2"); Application.LoadLevel (2); screenbutton = false; 复制此段程序并做修改。 运动控制键:上下左右 var TankSpeed:int = 20; function Update () { if(Input.GetKey(KeyCode.W)){ print("go"); transform.Translate(Vector3.forward
5、 * 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("turn left"); transform.Rotate(Vector3.up * Time.deltaTime * -TankSpeed); }else
6、if(Input.GetKey(KeyCode.D)){ print("turn right"); transform.Rotate(Vector3.up * Time.deltaTime * TankSpeed); } } 需要放在第一视角的物体或者摄像机上。 加天空背景: 菜单栏Component下的Rendering下的Skybox。将他加在所需场景的摄像机上,选择所需的天空。运行时自然出现。 各种按钮汇总: 鼠标碰触后显示说明文字。 function OnGUI () { GUI.Button (Rect (0, 0,
7、 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
8、Options"); GUI.enabled = allOptions; extended1 = GUI.Toggle (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"); }
9、 鼠标碰触第一个按钮有解释,鼠标碰触第三个对话框有解释。碰第二个没有解释。 function OnGUI () { GUI.Box (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
10、box")); GUI.Label (Rect (10,260,100,40), GUI.tooltip); } 半透明,说明性文字对话框。无选择。 function Update () { } 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 y
11、our main menu"); GUI.EndGroup (); } 滚动条,选择按钮。可以放多个按钮并且节省位置。 function Update () { } var scrollPosition = Vector2.zero; function OnGUI () { scrollPosition = GUI.BeginScrollView (Rect (10,400,100,100), scrollPosition, Rect (0, 0, 220, 200)); GUI.Button (Rect (0,0,100,20), "Top-left"); GU
12、I.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 (); } 循环的字幕。 var letterPause = 0.2;//定义每个字出现的时间间隔 var sound : AudioClip;//打字机的声音 private var word;//存储你打字机效果想要输出的字的变量
13、 private var Text : String = "My name is Ray Yang.Keep it in your heart!";//你希望打字机效果输出的字 function Start () { word = Text;//把你输出的字先赋值给word Text = "";//把你要显示的字先抹除,以便你可以在最初显示的时候显示为空,当然你也可以加上其他字,让他先显示,打字机效果打的字会显示在这个后面 yield WaitForSeconds (2); TypeText (); } function OnGUI () { GUI.L
14、abel (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;//把这些字赋值给Text if (sound)//控制声音,出现一个字,发一个声音 audio.PlayOneShot (so
15、und); 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;//
16、定义每个字出现的时间间隔 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; Te
17、xt = ""; yield WaitForSeconds (2); TypeText (); } 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 : c
18、har in Input.inputString) { // Backspace - Remove the last character if (c == "\b") { if (guiText.text.Length != 0) guiText.text = guiText.text.Substring(0, guiText.text.Length - 1); } // End of entry else if (c == "\n") { print ("User entered his name: " + guiText.text); } // Normal text
19、input - just append to the end else { guiText.text += c; } } } } function OnGUI(){ if(screnbutton==true){ if(GUI.Button(Rect(Screen.width/2-30,Screen.height/2-30,60,50),"scene1")){ print("you click Scene 1"); Application.LoadLevel (1); screnbutton=false; }else if(GUI.Button(Rect(Scr
20、een.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,50),"scene3")){ print("you click Scene 3"); Application.LoadLevel (3); screnbutton=false; }else if(G
21、UI.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 is the tooltip")); GUI.Label (Rect (0, 20, 100, 40), G
22、UI.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, "Extended Option 2"); GUI.enabl
23、ed = 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 ();
24、 GUI.Label (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)//控制声音,出现一个字,发一个声音 audio.P
25、layOneShot (sound); yield WaitForSeconds (letterPause); } } 主板游戏系列程序: CameraMoveRotate(第一视角界面场景自控程序) 使用时点击鼠标右键可以自由转换视角。同时点击AWSD键可以控制前进后退,向左向右。C#程序。 using UnityEngine; using System.Collections; /// MouseLook rotates the transform based on the mouse delta. /// Minimum and Maximu
26、m values can be used to constrain the possible rotation /// To make an FPS style character: /// - Create a capsule. /// - 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)
27、 /// - Add FPSWalker script to the capsule /// - Create a camera. Make the camera a child of the capsule. Reset it's transform. /// - Add 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
28、) [AddComponentMenu("Camera-Control/Mouse Look")] public class CameraMoveRotate : MonoBehaviour { public enum RotationAxes { MouseXAndY = 0, MouseX = 1, MouseY = 2 } public RotationAxes axes = RotationAxes.MouseXAndY; public float sensitivityX = 15F; public float sensitivityY = 15F;
29、 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 rotationY = 0F; Quaternion originalRotation; void Update () { //鼠标控制的转向 if( !I
30、nput.GetMouseButton(1) ){ return; }else{ if (axes == RotationAxes.MouseXAndY) { // Read the mouse input axis rotationX += Input.GetAxis("Mouse X") * sensitivityX; rotationY += Input.GetAxis("Mouse Y") * sensitivityY; rotationX = ClampAngle (rotationX, minimumX, m
31、aximumX); rotationY = ClampAngle (rotationY, minimumY, maximumY); Quaternion xQuaternion = Quaternion.AngleAxis (rotationX, Vector3.up); Quaternion yQuaternion = Quaternion.AngleAxis (rotationY, -Vector3.right); transform.localRotation = originalRotation * xQuaternion
32、 * yQuaternion; } else if (axes == RotationAxes.MouseX) { rotationX += Input.GetAxis("Mouse X") * sensitivityX; rotationX = ClampAngle (rotationX, minimumX, maximumX); Quaternion xQuaternion = Quaternion.AngleAxis (rotationX, Vector3.up); transform.localRotation = o
33、riginalRotation * xQuaternion; } else { rotationY += Input.GetAxis("Mouse Y") * sensitivityY; rotationY = ClampAngle (rotationY, minimumY, maximumY); Quaternion yQuaternion = Quaternion.AngleAxis (-rotationY, Vector3.right); transform.localRotation = originalRotatio
34、n * yQuaternion; } } //键盘控制的运动 float x = Input.GetAxis("Horizontal") * Time.deltaTime * moveSpeed; float z = Input.GetAxis("Vertical") * Time.deltaTime * moveSpeed; transform.Translate(x, 0, z); } void Start () { // Make the rigid body not change rotation
35、 if (rigidbody) rigidbody.freezeRotation = true; originalRotation = transform.localRotation; } public static float ClampAngle (float angle, float min, float max) { if (angle < -360F) angle += 360F; if (angle > 360F) angle -= 360F; return Mathf.Clamp (angle, min, max)
36、 } } Unity3d闪烁灯光脚本 也可以用unity3d做舞厅效果。。把脚本扔给灯光就可以了。 1. using UnityEngine; 2. using System.Collections; 3. [RequireComponent( typeof( Light ) )] 4. public class flickeringLight : MonoBehaviour 5. { 6. // Flickering Styles 7. public enum flickerinLightStyles { CampFire = 0, Fluo
37、rescent = 1 }; 8. public flickerinLightStyles flickeringLightStyle = flickerinLightStyles.CampFire; 9. // Campfire Methods 10. public enum campfireMethods { Intensity = 0, Range = 1, Both = 2 }; 11. public campfireMethods campfireMethod = campfireMethods.Intensity; 12. // In
38、tensity Styles 13. public enum campfireIntesityStyles { Sine = 0, Random = 1 }; 14. public campfireIntesityStyles campfireIntesityStyle = campfireIntesityStyles.Random; 15. // Range Styles 16. public enum campfireRangeStyles { Sine = 0, Random = 1 }; 17. public campfireRange
39、Styles campfireRangeStyle = campfireRangeStyles.Random; 18. // Base Intensity Value 19. public float CampfireIntensityBaseValue = 0.5f; 20. // Intensity Flickering Power 21. public float CampfireIntensityFlickerValue = 0.1f; 22. // Base Range Value 23. public float Camp
40、fireRangeBaseValue = 10.0f; 24. // Range Flickering Power 25. public float CampfireRangeFlickerValue = 2.0f; 26. 27. // If Style is Sine 28. private float CampfireSineCycleIntensity = 0.0f; 29. private float CampfireSineCycleRange = 0.0f; 30. // "Glow" Speeds 31.
41、 public float CampfireSineCycleIntensitySpeed = 5.0f; 32. public float CampfireSineCycleRangeSpeed = 5.0f; 33. public float FluorescentFlickerMin = 0.4f; 34. public float FluorescentFlickerMax = 0.5f; 35. public float FluorescentFlicerPercent = 0.95f; 36. // NOT IMPLEMEN
42、TED YET !!!! 37. public bool FluorescentFlickerPlaySound = false; 38. public AudioClip FluorescentFlickerAudioClip; 39. // ------------------------ 40. 41. 42. // Use this for initialization 43. void Start () { 44. 45. } 46. 47.
43、 // Update is called once per frame 48. void Update () { 49. switch( flickeringLightStyle ) 50. { 51. // If Flickering Style is Campfire 52. case flickerinLightStyles.CampFire: 53. // If campfire method is Intesity OR Both 54.
44、 if( campfireMethod == campfireMethods.Intensity || campfireMethod == campfireMethods.Both ) 55. { 56. // If Intensity style is Sine 57. if( campfireIntesityStyle == campfireIntesityStyles.Sine ) 58. { 59.
45、 // Cycle the Campfire angle 60. CampfireSineCycleIntensity += CampfireSineCycleIntensitySpeed; 61. if( CampfireSineCycleIntensity > 360.0f ) CampfireSineCycleIntensity = 0.0f; 62. // Base + Values 63
46、 light.intensity = CampfireIntensityBaseValue + ( ( Mathf.Sin( CampfireSineCycleIntensity * Mathf.Deg2Rad ) * ( CampfireIntensityFlickerValue / 2.0f ) ) + ( CampfireIntensityFlickerValue / 2.0f ) ); 64. } 65. else light.intensity = C
47、ampfireIntensityBaseValue + Random.Range( 0.0f, CampfireIntensityFlickerValue ); 66. } 67. // If campfire method is Range OR Both 68. if( campfireMethod == campfireMethods.Range || campfireMethod == campfireMethods.Both ) 69. { 70.
48、 // If Range style is Sine 71. if( campfireRangeStyle == campfireRangeStyles.Sine ) 72. { 73. // Cycle the Campfire angle 74. CampfireSineCycleRange += CampfireSineCycleRangeSpeed; 75.
49、 if( CampfireSineCycleRange > 360.0f ) CampfireSineCycleRange = 0.0f; 76. // Base + Values 77. light.range = CampfireRangeBaseValue + ( ( Mathf.Sin( CampfireSineCycleRange * Mathf.Deg2Rad ) * ( CampfireSineCycleRange / 2.0f ) ) +
50、 ( CampfireSineCycleRange / 2.0f ) ); 78. } 79. else light.range = CampfireRangeBaseValue + Random.Range( 0.0f, CampfireRangeFlickerValue ); 80. } 81. break; 82. // If Flickering Style is Fluorescent 83.
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818