(2020年整理)Unity3D常用脚本.pptx

合集下载

Unity3D一些比较基本的脚本及组件(C#)

Unity3D一些比较基本的脚本及组件(C#)

Unity3D⼀些⽐较基本的脚本及组件(C#)通过代码创造图形//创建顶点,创建序列,创建⽹格,然后把⽹格赋给⽹格序列器//draw a trianglevoid Start () {Vector3[] vs = new Vector3[3];vs[0] = new Vector3(0,0,0);vs[1] = new Vector3(1,0,0);vs[2] = new Vector3(0,1,0);int[ts] = new int[3];ts[0] = 0;ts[1] = 1;ts[2] = 2; //要注意顺序,要⽤左⼿系,法线向外,拇指向外Mesh mesh = new Mesh();GetComponet<MeshFilter>().mesh = mesh;mesh.vertices = vs; // vertices⾄⾼点mesh.triangles = ts;}///* */////draw a triangle程序封装代码public GameObject Create Triangle(){GameObject obj = new GameObject(“Triangle”);MeshFilter mf = obj.AddComponet<MeshFilter>();obj.AddComponent<MeshRender>();Mesh mesh = new Mesh();mesh.vertices = nes[]{new Vector3(0,0,0);new Vector3(3,0,0);new Vector3(0,3,0);};mesh.triangles = new[]{0,2,1//不⽤分号,初始化系,直接把初始值放进去};mf.mesh = mesh;return obj;}Camera 的性质与使⽤public CameraClearFlags clearFlags; //clearFlags是相机清除表识public ColorbackgroundColor; //给定他的颜⾊,背景⾊,只有单⾊才起作⽤public int cullingMask; //提出掩码public class chapter6 : MonoBehaviour{public GameObject cube;void Start(){ber = 9; //把cube设置在第9层Camera cam = this.GetComponet<Camera>()’cam.clearFlags = CameraClearFlags.SolidColor;cam.backgroundColor = new Vector3(1,0,0,0); //表⽰设置颜⾊cam.cullingMask = 9; //表⽰第9层的都不会被渲染出来,也就是说cube不会显⽰出来}}//CameraClearFlags是⼀个枚举类型,有以下四个成员:solidColor 表⽰⽤backgroundColor所制定的填充背景skybox 表⽰天空盒,模拟天空效果填充Depth 只是清除深度缓存,保留上⼀帧所使⽤的颜⾊Nothing 不进⾏背景清除,这种情况在游戏和模拟应⽤中⽐较少⽤public bool orthographic;//⽤于读取和设定相机的投影⽅式,如果为true则表⽰是正交投影,否则为透视投影;正交投影可⽤于UI和2D开发public float orthographicSize; //⽤以指定正交投影的视景体的垂直⽅向尺⼨的⼀半public Rect rect; //相机对应的视⾓⼝的位置和⼤⼩,rect以单位化形式制定相机视⼝在屏幕中的位置和⼤⼩,位置⼤⼩取值范围为0~1,满屏为1Camera main = this.gameObject.GetComponet<Camera>();this.gameObject.SetActive(false);Camera cam0 = camGO0.AddComponet<Camera>();cam0.orthographic = true;cam0.transform.position = main.transform.position;cam0.transform.rotation = main.transform. rotation;cam0.orthographicSize = 2.0f; //指物体渲染后显⽰的⼤⼩远近,数值越⼤,相机视⼝越靠近该物体,从⽽该物体显⽰出来的更加⼤cam0.rect = new Rect(0f,0f, 0.5f, 0.5f); //前两个参数是camera的位置,后⾯两个参数设置相机⼤⼩(0.5f,0.5f)表⽰占x轴的⼆分之⼀,y轴的⼆分之⼀,所以总共占渲染窗⼝的四分之⼀Camera cam1 = camGO1.AddComponet<Camera>();cam1.orthographic = true;cam1.transform.position = main.transform.position;cam1.transform.rotation = main.transform. rotation;cam1.orthographicSize = 7.0f;cam1.rect = new Rect(0.5f, 0.5f, 0.5f, 0.5f);}Material,Shader,Texture(材质,着⾊器,纹理)光照、纹理等让物体更加的真实。

Unity3D培训图解Unity常用脚本类的继承关系(入门篇)

Unity3D培训图解Unity常用脚本类的继承关系(入门篇)

Unity3D培训图解Unity常用脚本类的继承关系(入门篇)学习Unity开发引擎的初学者会接触大量的脚本类,而这些类之间的关系往往容易被忽略。

蓝鸥Unity3D培训讲师将对Unity引擎开发中的一些常用类及其关系进行了简单的归纳总结。

尤其是对刚入门Unity3D开发初学者而言益处颇多。

Unity常用脚本类继承关系图个基本层次:工程(应用程序)、场景、游戏对象和组件。

在脚本中,整个应用程序和场景由Application类控制;而游戏对象和组件类均继承于Object类。

在Object类的派生类中,还有一些类,他们绝大多数都属于资源,是构成组件以及游戏对象的组成部分。

还有一部分常用类并不继承于UnityEngine中的Object类,从功能上可以看出这些类的主要作用是从某一方面进行宏观控制。

从这个意义上说,可以把Application类和其它有宏观控制作用的类归为一类。

这样以来Unity中的常用脚本类就可以简单的分成如下四大类:一、宏观控制类主要作用是真对Unity程序中的某一方面进行宏观控制。

包括:Application ——应用程序类Input ——输入类GUI ——图形输出类Physics ——物理引擎类Resources ——资源类Time ——时间类等等二、游戏对象(GameObject)类由于Unity是面向组件的开发模式(而非面向对象),所以从类的继承关系中也能看出:对于GameObject类没有下太多的笔墨,而是将更多的内容交给下面的组件类。

三、组件(Component)类脚本开发中的组件类往往可以和图形界面中的检视面板对应起来。

每一个游戏对象的细节设置与操控都需要借助组件类来完成。

在常用组件类中,有两个继承关系需要特别提一下:(1)角色控制器(CharacterController)类继承于碰撞器(Collider)类(2)有一组类并不直接继承于组件类,而是通过继承Behavior类间接的继承,包括我们熟知的MonoBehavior类至于为什么会这样设计类,在入门篇就不深入讨论了。

Unity脚本入门[优质ppt]

Unity脚本入门[优质ppt]
������ 创建一个Cube,缩放x,y,z为”5,0.1,5”,它现在看起 来应该是一个大平板.在层次视图(Hierarchy Viewbe1运动起来,就需要加入脚本 。 通过控制主相机的位置来实现,要做到这一点,我们现在 要写一个脚本来读取键盘的输入.然后把脚本和相机链 接起来。
首先创建一个空脚本. 选择”Assets->Create->Javascript”并在项目面板重 命名为”Move1”.
双击Move1脚本,它将打开,并且默认包含有Update() 函数,我们将我们编写的代码插入这个函数,任何加入 Update()函数中的代码都将在每一帧(frame)执行一次.
二、第一个脚本
二、第一个脚本
我们的第一个脚本是在一个简单的游戏场景中走动 .
第一步:设置场景,即在游戏场景中添加地面和游 戏对象。
地面可由一个扁的Cube代替.
创建一个Cube,缩放x,y,z为”5,0.1,5”,它现在看起 来应该是一个大平板.在层次视图(Hierarchy View)中重 命名为”Plane”.
我们总是需要脚本代码中暴露的变量,以便我们在检视面板中设置数值. 为了演示连接变量的概念,我们建立一个跟随玩家(主相机)的聚光灯.
添加一个聚光灯到场景视图,移动它靠近其他游戏对象.
创建一个JavaScript脚本并重命名为Follow. 我们希望主相机的地方有个聚光灯所照耀.事实上,Unity中有个函数能做到 这一点. transform.LookAt(). 我们可以使用一个暴露变量(Transform类型)。 Follow.js脚本如下:
二、第一个脚本
打开脚本Move1并输入上面的代码,注意大小写. 现在我们第一个脚本写完了,怎么让Unity的游戏对象具 有这个脚本行为呢?

Unity3D游戏开发ppt课件

Unity3D游戏开发ppt课件
理解和美工的分工:在3dsmax中设计出3d模型、贴图出来(打开“希腊 圣殿场景”),然后ribbon按钮→导出成FBX格式,FBX拖入Project,接 着把模型拖入到Hierarchy,调整它的坐标。把旋转脚本拖到“圣殿”上这 样圣殿也就跟着一起旋转了,把Cube的脚本去掉(Inspector中Remove 掉Component即可)这样Cube就不旋转了。必须按照Unity3d标准要求 设计的3dsmax才能正确导入,资源下载地址: 等。项目路径和FBX文 件名不要有中文
8
—高级软件人才实作培训专家
案例深入
项目运行过程中的修改不会保存。其实相当于调试时改代码立即生效的 功能,只是调试结束一切调试期的修改都消失
抗锯齿:主菜单→Edit→Project Settings→Quality,AntiAliasing选为4x (越大越平滑但是越占资源)
体验跨平台:File→Build Settings,构建为exe、flash,如果有android 、ios等开发环境还可以构建为手机软件。
Unity多开:建一个快捷方式加上“-projectPath”参数即可。
—高级软件人才实作培训专家
脚本基础
C#脚本不支持命名空间,脚本在Project中的显示名称不要加cs,类名 要和cs名称一致,所有类继承自MonoBehaviour。跟具体游戏对象无关 的脚本可以放到摄像机MainCamera中。不要不正确的给一个游戏对象 设置多个脚本对象
—高级软件人才实作培训专家
常用GUI控件1
密码框:pwd = GUILayout.PasswordField(pwd,‘*’),第二个参数 为掩码字符,注意帧刷新的问题。
Button只有鼠标抬起才会返回true,这样用Button做发射子弹就 不能按下一直发射,可以使用RepeatButton,这样按下期间会一 直返回true。案例:Button和RepeatButton实现游戏对象移动。

unity3d功能脚本大全

unity3d功能脚本大全

1.右键菜单function OnGUI(){if(Input.GetMouseButton(1)){GUILayout.BeginArea (new Rect (Input.mousePosition.x,Screen.height-Input.mousePosition.y,200,200));GUILayout.Box("This is a Context Menu");GUILayout.EndArea ();}}/*if(Input.GetMouseButton(0))Debug.Log("Pressed left click.");if(Input.GetMouseButton(1))Debug.Log("Pressed right click.");if(Input.GetMouseButton(2))Debug.Log("Pressed middle click.");*/2.用辅助键/双键控制视角using UnityEngine;using System.Collections;public class ControlCamerMove : MonoBehaviour {void Update () {if(Input.GetKeyDown(KeyCode.LeftControl)){this.GetComponent<MouseLook>().enabled = false;}if(Input.GetKeyUp(KeyCode.LeftControl)){this.GetComponent<MouseLook>().enabled = true;}}}3.与网页交互-打开网页function OnGUI()bel("当前场景:"+ Application.loadedLevelName);if(GUILayout.Button("打开网页"))Application.OpenURL("");}4.在unity中播放视频--绘制#pragma strictvar movTexture:MovieTexture;function Start (){movTexture.loop = true;}function OnGUI(){GUI.DrawTexture(new Rect (0,0,Screen.width,Screen.height),movTexture,ScaleMode.StretchToFill);if(GUILayout.Button("播放/继续")){if (!movTexture.isPlaying){movTexture.Play();}}if(GUILayout.Button("暂停播放")){movTexture.Pause();}if(GUILayout.Button("停止播放")){ 贴图movTexture.Stop();}}5.在unity中播放视频--作为plane的材#pragma strictvar movTexture:MovieTexture;function Start (){this.renderer.material.mainTexture = movTexture;movTexture.loop = true;}function OnGUI(){if(GUILayout.Button("播放/继续")){if (!movTexture.isPlaying){movTexture.Play();}}if(GUILayout.Button("暂停播放")){movTexture.Pause();}if(GUILayout.Button("停止播放")){movTexture.Stop();}}6.用材质偏移模拟水流效果using UnityEngine;using System.Collections;public class Whatflow : MonoBehaviour {public float scrollSpeed=3;void Update () {float offset = Time.time*scrollSpeed;renderer.material.SetTextureOffset("_MainTex",new Vector2(0,offset));}}7.从网页上获取一张图片并动态使用var url = "/attachments/images/201011/20101110/20101109_da85542f8635f3c5 b963vil1B8qeeS9O.jpg";function Start () {var www : WWW = new WWW (url);//定义www为WWW类型并且等于被下载的内容。

Unity3d 脚本参考大全

Unity3d 脚本参考大全

一、脚本概览这是一个关于Unity内部脚本如何工作的简单概览。

Unity内部的脚本,是通过附加自定义脚本对象到游戏物体组成的。

在脚本对象内部不同的函数被特定的事件调用,最常用的列在下面:Update:这个函数在渲染一帧之前被调用。

这里是大部分游戏行为代码被执行的地方,除了物理代码。

FixUpdate:这个函数在每个物理时间步被调用一次。

这是处理基于物理游戏行为的地方。

在任何函数之外的代码:在任何函数之外的代码在物体被加载的时候运行。

这个可以用来初始化脚本状态。

注意:文档的这个部分假设你是用Javascript,参考用C#编写脚本获取如何使用C#和Boo编写脚本的信息。

你也能定义时间句柄。

他们的名称都以On开始,(例如OnCollisionEnter).为了查看完整的预定义时间的列表,请参考MonoBehaviour文档。

概览:常用操作大多数游戏物体的操作是通过游戏物体的Transform和/或Rigidbody来做的。

在行为脚本内部他们可以分别通过transform和rigidbody访问,因此如果你想绕着Y轴每帧旋转5度,你可以如下写:function Update(){transform.Rotate(0,5,0);}如果你想向前移动一个物体,你应该如下写:function Update(){transform.Transtate(0,0,2);}概览:跟踪时间Time类包含一个非常重要的类变量,成为deltaTime.这个变量包含从上一次调用Update或FixedUpdate(根据你是在Update函数还是在FixedUpdate函数中)到现在的时间量。

所以对于上面的例子,修改它使这个物体以一个恒定的速度旋转而不依赖于帧率:function Update(){transform.Rotate(0,5*Time.deltaTime,0);移动物体:function Update(){transform.Transtate(0,0,2*Time.deltaTime);}如果你加或减一个每帧改变的值,你应该将它与Time.deltaTime 相乘,当你乘以Time.deltaTime时,你实际表达的是:我想以10米/秒移动这个物体而不是10米/帧。

2020年整理Unity3D菜单.pdf

2020年整理Unity3D菜单.pdf

重新导入
Create
创建
Show in Explorer
在资源管理器中显示
Open
打开(打开脚本)
Import New Asset... 导入新的资源
Refresh
刷新
Import Package...
导入资源包
Export Package... 导出资源包
Select Dependencies 选择相关
撤销 重复 剪切 复制 粘贴 复制 删除 当前镜头移动到所选的物体前 选择全部 参数选择 播放 暂停,中断 步骤 载入所选 存储所选 工程设置 渲染设置
学海无涯
Graphics emulation 图形仿真
Network emulation 网络仿真
Snap settings
对齐设置
Assets (资源)-----Reimport
Help(帮助)--------About Unity
关于 Unity Enter serial number Unity Manual Reference Manual Scripting Manual Unity Forum Welcome Screen Release Notes Report a Problem
Use Defaults 恢复初始状态
学海无涯
快捷键知识 查看 Q 位移 W 旋转 E 缩放 R 坐标位置 Z 坐标定位 X 与窗口的这些按钮相对应 需要注意的是 坐标位置 Z 坐标定位 X 坐标位置分为 Pivot 轴心点位置和 Center 中心点位置 当我们同选中 2 个物体或多个物件时 Pivot 轴心点的位置状态 坐标位置落在最后选定的物件上 如下图
输入序列号 Unity 手册 参考手册 脚本手册

unity3d基础文档(gui入门,脚本概览,命令手册)

unity3d基础文档(gui入门,脚本概览,命令手册)

Unity3d-GUI入门这一段将解释UnityGUI控制所需的脚本。

UnityGUI控制UnityGUI控制是利用一类被称为OnGUI()的函数,只要在控制脚本激活的状态下,OnGUI()函数可以在每帧调用,就像Update( )函数一样。

GUI控制在结构上相当简单,这种结构在下面这个例子中十分明显:/* Example level loader */function OnGUI (){// Make a background boxGUI.Box (Rect (10,10,100,90), "Loader Menu");// Make the first button. If it is pressed, Application.Loadlevel (1) will be executedif (GUI.Button (Rect (20,40,80,20), "Level 1")) {Application.LoadLevel (1);}// Make the second button.if (GUI.Button (Rect (20,70,80,20), "Level 2")) {Application.LoadLevel (2);}}这个例子是一个完整的,功能层的装载,如果你把这段脚本复制粘贴到GameObject上,在Play模式下你将会看到如下的菜单出现。

这个装载菜单是由例子中的代码创建的。

下面让我们看一下这个例子中代码的细节:在GUI的第一行中,GUI.BOX (Rect(10,10,100,90),”Loader Menu”);通过头文本“Loader Menu”显示一个Box控制,它通过一个典型的GUI控制定义,这样我们可以在第一时间解释。

在GUI的下一行中是一个Button控制定义,要注意它与BOX控制之间细微的差别。

unity3d小小白之常用脚本API(transform、Time、Random)

unity3d小小白之常用脚本API(transform、Time、Random)

unity3d⼩⼩⽩之常⽤脚本API(transform、Time、Random)Unity引擎提供了丰富的组件和类库,我就简单介绍⼀下我⽐较常⽤的transform、Time、Random。

⼀、Transform组件
Transform组件决定了游戏对象的位置、⽅向和缩放⽐例,设置相机的视⾓和更新玩家位置都要⽤到该组件。

成员变量和成员函数先不列出来了,圣典⾥有。

简单说⼀下应⽤(⽤法):
1、绕⾃⾝坐标轴Y旋转
float speed = 30.0f;
transform.Rotate(Vectoe3.up*TIme.deltaTime*speed);
2、向前移动
float speed = 30.0f;
transform.Translate(Vector3.forward*Time.deltaTime*speed);
3、绕世界坐标轴Y旋转
float speed = 30.0f;
transform.RotateAround(Vector3.zero, Vector3.up, speed*Time.deltaTime);
⼆、TIme
与时间有关的。

1、游戏从开始到现在经历的时间
2、deltaTime 上⼀帧消耗的时间
三、Random
⽣成随机数、旋转、随机的东西。

rotation:随机旋转
value:0到1之间的随机浮点数,包含01。

Unity3D命令手册(下)

Unity3D命令手册(下)

Unity3D命令手册(下)第三章 Assets(资源)Reimport 重新导入重新导入资源Create 创建创建物件--Folder 创建文件夹--JavaScript 创建JAVA脚本--C Sharp Script 创建C Sharp脚本--Boo Script 创建Boo脚本--Shader 创建着色脚本--Prefab 创建预置--Animation 创建动画==Compressed 压缩==Sample Rate 采样频率==Wrap Mode 换行模式==Default 默认==Once 一次==Loop 循环==PingPong 反复==ClampForever 永远--Material 材质球--Cubemap 立方体贴图--Lens Flare 光晕--Custom Font 自定义字体--Physic Material 自然材质球--GUI Skin GUI皮肤Show in Explorer 在资源管理器中显示在资源管理器中显示文件的位置Open 打开(打开脚本)打开一个脚本文件Import New Asset... 导入新的资源导入新的资源文件Refresh 刷新刷新Import Package... 导入资源包导入资源包Export Package... 导出资源包导出资源包Select Dependencies 选择相关选择与物件相关的链接文件Export ogg file 导出OGG文件导出OGG文件Reimport All 重新导入所有重新导入所有资源Sync VisualStudio Project 同步视觉工作室项目同步视觉工作室项目第四章 GameObject(游戏对象)Create Empty 创建一个空的游戏对象创建一个空的游戏对象Create Other 创建其他组件创建其他组件-Particle System 粒子系统-Camera 摄像机-GUI Text 图形文本-GUI Texture 图形纹理-3D Text 3D文字-Point Light 点光源-Spotlight 聚光灯-Directional Light 平行光-Cube 立方体-Sphere 球体-Capsule 药丸体-Cylinder 圆柱体-Plane 平面-Ragdoll 布娃娃(不准)--Root 根--Left Hips 左臀部--Left Knee 左膝--Left Foot 左脚--Right Hips 右臀部--Right Knee 右膝--Right Foot 右脚--Left Arm 左臂--Left Elbow 左肘--Right Arm 右臂--Right Elbow 右肘--Middle Spine 中央脊柱--Head 头--Total Mass 总质量--Strength 气力--Flip Forward 倒装转发(不准)Center On Children 子物体归位到父物体中心点将子物体归位到父物体中心点Make Parent 创建子父集创建子父集关系Clear Parent 取消子父集取消子父集关系Apply Changes T o Prefab 应用变更为预置应用当前变更为预置Move To View 移动物体到视窗的中心点移动物体到视窗的中心点Align With View 移动物体与视窗对齐移动物体与视窗对齐Align View to Selected 移动视窗与物体对齐移动视窗与物体对齐第五章 Component(组件)Mesh 网格--Mesh Filter 网格过滤器--Text Mesh 文字网格--Mesh Renderer 网格渲染(网格生成器)--Combine Children 结合子物体Particles 粒子--Ellipsoid Particle Emitter 椭球粒子发射器--Mesh Particle Emitter 网格粒子发射器--Particle Animator 粒子动画--World Particle Collider 世界粒子碰撞机--Particle Renderer 粒子渲染--Trail Renderer 径渲染Physics 物理--Rigidbody 刚体--Character Controller 字符控制器--Box Collider 盒子碰撞机--Sphere Collider 球体碰撞机--Capsule Collider 胶囊碰撞机--Mesh Collider 网格碰撞机--Wheel Collider 轮体碰撞机--Raycast Collider 光线投射碰撞机--Hinge Joint 关键骨节--Fixed Joint 固定骨节--Spring Joint 弹性骨节--Character Joint 字符骨节--Configurable Joint 联合骨节--Constant Force 恒力Audio 音频--Audio Listener 音频监听--Audio Source 音频源Rendering 渲染--Camera 摄像机--Light 灯光--Projector 投影机--Halo 晕染--Lens Flare 光晕--GUI Texture 图形纹理--GUI Text 图形文本--Skybox 天空盒--GUI Layer 图形层--Flare Layer 闪光层--Halo Layer 晕染层Miscellaneous 杂项--Animation 动画--Line Renderer 线渲染--Network View 网络浏览--Terrain Collider 地形碰撞机Scripts 脚本--Activate Trigger 激活触发--Drag Rigidbody 刚体拖动--FPSWalker 新鲜粮食店(不准)--Terrain 地形--Timed Object Destructor 定时对象的析构--Water Simple 水简诉Camera-Control 摄像机控制--Mouse Look 鼠标查看--Mouse Orbit 鼠标轨道--Smooth Follow 光滑后续--Smooth Look At 光滑预览第六章 Terrain(地形)Create Terrain 创建地形创建一个新的地形Import Heightmap - Raw...导入高度图导入已存地形的高度图Export Heightmap - Raw...导出高度图导出当前地形的高度图Set Resolution...设置分辨率设置分辨率(设置地形的大小比例等)Create Lightmap...创建光影图创建光影图Mass Place Trees...批量种植树批量的在地形上种植树Flatten Heightmap...展平高度图在一个高度上展平地形Refresh Tree and Detail Prototypes 刷新树及预置细节刷新树和预置的细节第七章 Window(窗口)Next Window 下个窗口显示下一个窗口Previous Window 前窗显示最前的窗口Layouts 布局布局模式--2 by 3 2和3--4 Split 4视窗--Tall 单视窗--Wide 宽屏--Save Layout 保存布局--Delete Layout 删除布局--Revert Factory Settings 恢复出厂设置Scene 场景窗口显示场景窗口Game 游戏窗口显示游戏窗口Inspector 检视窗口显示检视窗口Hierarchy 层次窗口显示层次窗口Project 工程窗口显示工程窗口Animation 动画窗口显示动画窗口Profiler 探查窗口显示探查窗口Asset Server 资源服务器显示资源服务器Console 控制台显示控制台第八章 Help(窗口)About Unity 关于Unity显示关于Unity的信息Enter serial number 输入序列号输入软件序列号Unity Manual Unity手册显示Unity使用手册Reference Manual 参考手册显示Unity参考手册Scripting Manual 脚本手册显示Unity 脚本手册Unity Forum Unity论坛显示Unity论坛Welcome Screen 欢迎窗口显示欢迎窗口Release Notes 发行说明显示发行说明Report a Problem 问题反馈提交问题反馈。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
screenbutton = true; } } function OnGUI(){
if(screenbutton==true) if(GUI.Button(Rect(Screen.width/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); screenbutton = 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 下)菜单中加 入所需场景。
var particle : GameObject;
function Start(){ DontDestroyOnLoad(this); screnbutton=true;
word = Text; Text = ""; 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 (); }
Text=""; TypeText(); } }
有打字声音的字幕循环。 var screnbutton:boolean; var icon : Texture;
var allOptions = true; var extendd2 = true;
var letterPause = 0.2;//定义每个字出现的时间间隔 var sound : AudioClip;//打字机的声音 private var word;//存储你打字机效果想要输出的字的变量 static var Text : String = "This is zcx first project! I can do it."; var del : boolean = false;
Text += letter;//把这些字赋值给 Text if (sound)//控制声音,出现一个字,发一个声音
学海无 涯
audio.PlayOneShot (sound); yield WaitForSeconds (letterPause); } } function Update () { if(Text == word){
学海无 涯
GUI.enabled = true; if (GUI.Button (Rect (0, 160, 150, 20), "Ok")); print ("user clicked ok"); }
鼠标碰触第一个按钮有解释,鼠标碰触第三个对话框有解释。碰第二个没有解释。 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 box")); bel (Rect (10,260,100,40), GUI.tooltip); }
}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 if(Input.GetKey(KeyCode.D)){ print("turn right"); transform.Rotate(Vector3.up * Time.deltaTime * TankSpeed);
学海无 涯
} } 需要放在第一视角的物体或者摄像机上。 加天空背景: 菜单栏 Component 下的 Rendering 下的 Skybox。将他加在所需场景的摄像机上,选择所需的 天空。运行时自然出现。
学海无 涯
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;
学海无涯
场景转换: var screenbutton: boolean; function Start(){
DontDestroyOnLoad(this); screenbutton = true; } function Update () { if(Input.GetKeyDown(KeyCode.Escape)){
滚动条,选择按钮。可以放多个按钮并且节省位置。 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"); 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.EndScrollView (); }
复制此段程序并做修改。
运动控制键:上下左右 var TankSpeed:int = 20; function Update () {
if(Input.GetKey(KeyCode.W)){ print("go"); transform.Translate(Vector3.forward * Time.deltaTime * TankSpeed);
学海无 涯
循环的字幕。 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 = "";//把你要显示的字先抹除,以便你可以在最初显示的时候显示为空,当然你也可以 加上其他字,让他先显示,打字机效果打的字会显示在这个后面 yield WaitForSeconds (2); TypeText (); } function OnGUI () { bel (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 中的 每一个字符
半透明,说明性文字对话框。无选择。 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 your main menu"); GUI.EndGroup (); }
相关文档
最新文档