using UnityEngineSceneManager;
public class Test:MonoBehaviour
{
public void OnClick()
{
SceneManagerLoadScene(1);
}
}本教程将解释用于创建游戏场景的元素及方法。
1 游戏物体(GameObject)
在
Unity中昀重要的就是游戏物体。理解什么是游戏物体如何使用它是非常重要的。该部分就将解释这个概念。
什么是游戏物体?在你的游戏中的任何东西都是游戏物体。然而,游戏物体自身并不能做所有的事情。在它们成为角色,环境或者特定的效果之前它们需要特定的属性。但是物体中的每一个都会做许多不同的事情。如果每一个物体都是一个游戏物体,我们怎么从一个静态房间中区分一个具有强大交互能力的物体?是什么使得游戏物体相互不同呢?
答案就是游戏物体是一个容器。他们是一个空的可以容纳不同块的盒子,而这些块组成了一个带有光照贴图的岛或是一个物理驱动的汽车。为了真正理解游戏物体,你需要理解这些块;这些块被称为组件(Components)。根据你要创建的物体的不同,你可以添加不同组件到一个游戏物体中。将游戏物体想象为一个空的烹调罐,组件为不同的组成游戏的配料。
游戏物体与组件的关系现在我们知道游戏物体包含组件。我们将通过使用昀常用的组件——
变换组件(Transform)来讨论这两者之间的关系。打开任意一个场景,创建一个新的游戏物体(使用 Shift-Command-N),选择他并查看检视面板(Instpector)
空物体的检视面板
你可能注意到了这里有两个完全不同的部分。”GameO
bject”和”Transform”。属于游戏物体部分的是关于游戏
物体自身的信息。这里只有物体的名称。变换部分显
示变换组件的信息。当你创建一个新的物体时,将会
自动包含一个变换组件。所有的物体都会有一个变换
组件。在 Unity中你不可能创建一个没有变换组件的物体,变换
组件为所有物体提供了独特的功能。
变换组件变换组件是昀重要的组件之一。它定义了游戏物体在场景视图中的位置,旋转,和缩放。如果游戏物体没有旋转组件,那么它将不会存在世界中。参考变换组件部分。变换组件也可以使用一个被称为父子化(Parenting)的功能,这个功能被编辑器(Unity Editor)利用并且是使用游戏物体昀关键的部分。
父子化父子化的意思是你可以使一个游戏物体的变换值完全依赖于另一个不同游戏物体。简单来说,就是一个物体随着另一个物体移动。当一物体是另外一些物体的父(Parent)物体时,这个物体的旋转将影响所有的子(Child)物体。你可以在层次视图 (Hierarchy
View)中通过拖动任何物体到另一个物体上来创建一个父。这将在两个物体之间创建父子关系。这种功能非常类似于文件夹树的功能,一个游戏物体包含在另一个游戏物体中。 需要指出的是所有子物体的变换值都是相对于父物体的,这个被称为局部坐标(Local Coordinates)。通过脚本你可以访问全局坐标(Global Coordinates)和局部坐标。
一个游戏物体可以有任意多个子物体,但是只能有一个父物体。子物体也可以是其它物体的父物体。你可以很容易的在层次视图中分辨一个物体是不是一个父物体。如果在它名称的左边有一个箭头,那么它就是一个父物体。
一个真实的父子层次树,所有带有箭头的物体都是父物体
记住所有的父子化的功能都是通过游戏物体的变换组件执行的,而不是游戏物体自身。
游戏物体-
脚本关系当你创建一个脚本(script)并将其附加到一
个游戏物体上时,这个脚本将在检视面板中作为一
个组件显示。这是因为当它们被保存时脚本就变成
一个组件。从技术角度来说,脚本是作为组件的一
种来编译的,就像其它组件一样。
任何在脚本中申明的公有变量都将在游戏物体的检
视面板中显示为可编辑或可连接。编写脚本的时候
,你能够直接访问任何游戏物体类的成员。你可以
在这里看到一个游戏物体类的成员列表。如果任何
一个类作为一个组件附加在一个游戏物体上,你就
可以在脚本中使用成员名来直接访问这个组件。例
如键入 transform等同于
gameObjecttransform。前面的
gameObject是编译器自动加入的,除非你要指定一个不同的物体。
使用 this可以访问当前的脚本组件。使用 thisgameObject可以访问该脚本所依附的游戏物体,当然你可以简单的使用
gameObject来访问此游戏物体。逻辑上来说,键入 thistransform与 tansform是相同的,如果你想访问一个组件而该组件并没有作为一个游戏物体成员包含在其中,你需要使用 gameObjectGetComponent()
2 使用组件(Using Components)
组件是游戏中一个物体的行为和核心。它们是游戏物体的功能性模块。如果你还不理解游戏物体和组件之间的关系,请参考游戏物体部分。
一个游戏物体包含许多不同的组件。缺省情况下。所有的游戏物体都包含一个变换(Transform)组件。这是因为变换表示物体的位置,旋转和缩放。没有变换组件,游戏物体将不会有位置。尝试创建一个空的游戏物体。单击 GameObject->Create
Empty菜单项。选择新游戏物体,并查看检视面板
。
每一个空的游戏物体都有一个变换组件
可以使用检视面板来查看都有什么组件附加在游戏
物体上。但一个组件被加入或删除的时候,检视面
板将显示当前附加的组件。可以使用检视面板来改
变任何组件的属性 (包括脚本)。
添加组件可以通过组件菜单为当前的游戏物体添加
一个组件。尝试添加一个刚体(Rigidbody)到刚创建的物体上。选择该物体并从菜单中选择 Component->physics-
>Rigidbody。现在你将会发现刚体属性显示在检视面板中,如果在该物体被选中的情况下按下播放键(Play)你将会有惊喜的发现。注意刚体是如何在一个空物体上添加功能的。
附加了刚体组件的空物体
可以附加任意数量的组件到一个游戏物体。一些组
件可以与其他一些组件一起工作。例如,刚体可以
和任何碰撞物一起工作。刚体通过 Ageia
PhysX物理引擎控制变换,并且碰撞器允许刚体与
其它的碰撞器碰撞和交互。一个不同的组件组合例
子是一个粒子系统 (Particle
System)。它们使用一个粒子发射器 (Particle
Emitter),粒子动画 (Particle
Animator)和粒子渲染器(Particle
Renderer)来创建一组移动的粒子。
可以通过点击位于检视面板头部的问号访问组件的
参考页。
编辑组件一个组件昀重要的方面是其可扩展性。当你添加一个组件到一个物体上时,它有不同的可以调整的值或者属性(Properties),也可以在游戏中通过脚本来调整它。有两种不同类型的属性:值(Values)和引用(References)。
下图中是一个具有音频源 (Audio
Source)组件的空游戏物体。在检视面板中所有音频源的值都是缺省的。这个组件包含一个单一的引用属性和七个值属性。音频剪辑 (Audio
Clip)是一个引用属性。当这个音频源开始播放时,它将尝试播放 Audio
Clip属性所引用的音频文件。如果没有添加引用属性,将会出现一个错误因为没有音品将被播放。你必须在检视面板中引用音频文件。你可以非常简单的从工程视图中将音频文件拖动到引用属性中。
现在一个音效文件在音频剪辑属性中被引用
组件可包含任何其它类型组件的引用,文件或游戏物体。你只需拖动适当的引用到这个属
性上。引用类型是非常有用和强大的,尤其是在使用脚本时。参考脚本教程。 音频剪辑中剩下的七个都是值属性。都可以通过单击并按下 Enter键来调整它们。使用键盘输入值,并按 Enter保存它。你也可以通过使用 option-或 right-click或拖动数字属性来快速滚动这些值。 音频剪辑中的值属性都是数字,但是一些属性也可以是字符串。例如,文本网格(Text Mesh)组件包含一个文本(Text)属性,这个属性可以接受字母数字字符。 一些值可以包含字符,例如文本网格中的 Text属性
unity3D基础入门教程
1本部分是你开始Unity的关键。这里将解释Unity的界面,菜单项,使用资源,创建场景,和发布。当你完全阅读了该部分后,你将能够理解Unity是如何工作的,以及如何使其更加有效的工作,和如何将简单的游戏放置在一起
2现在我们开始学习Unity,如果你还没有打开Unity,你可以通过双击位于Application->Unity文件夹中的Unity图标来运行它,当它第一次运行时你将看到如下的场景:Unity运行时的缺省场景,如果你打开过任何实例,你的屏幕会与上图不同有很多需要学习的东西,让我们花费点时间来观察理解上述界面。
我们将介绍每一个接口元素。概要主窗口的每一个部分都被称为视图(View)。在Unity中有多种类型的视图,但是,你不需要同时看见所有的视图。不同的布局模式(Layoutmodes)包含的视图是不同的。
通过单击布局下拉控件来选择不同的布局,该控件位于窗口的右上角。布局模式选择下拉列表现在,单击布局选择,并单击Animation,切换到动画布局(Animationlayout)。还可以从菜单中选择Window->Layouts->Animation来切换。动画布局包含所有的视图,这是昀好的用来介绍它们的方法
3通过视图左上角的名称你可以迅速的分辨这些视图。这些视图是:场景视图(SceneView)-用于放置物体游戏视图(GameView)-表示游戏在运行时的外观层次视图(Hierarchy)-当前场景中的游戏物体的列表工程视图(Project)-显示当前打开工程中所有可用的物体和资源检视视图(Instpector)-显示当前选中物体的细节和属性时间线(Timeline)-用于为当前选中物体创建基本的时间线动画场景视图(SceneView)
4场景视图(SceneView)是一个可交互的沙盘。你将使用它来选择并在场景中定位所有的游戏物体(GameObjects),包括玩家,摄像机,敌人等。在场景视图中 *** 纵并修改物体是Unity非常重要的功能。这是昀好的通过设计者而不是玩家的角度来查看场景的方法。在场景视图中你可以随意移动并 *** 纵物体,但是你应该知道一些基本的命令以便有效的使用场景视图。
第一个你应该知道命令是FrameSelected命令。这个命令将居中显示你当前选中的物体。你可以在层次视图(Hierarchy)单击任何物体,然后移动你的鼠标到场景视图上并按F键。场景视图将移动以居中显示当前选择的物体。这个命令是非常有用的,你将在场景编辑的时候经常使用它。在场景视图中 *** 作在场景视图的上方有一个包含布局模式选择的工具栏
5尽管现在的工具栏没有附着在场景视图窗口上,但是位于左侧的四个按钮可用来在场景视图中导航并 *** 纵物体,中间的两个用来控制选中的物体轴心如何显示。左边的第一个ViewTool将在以后说明。后面的工具为 *** 纵工具(ManipulationTools),中间的两个为手柄位置工具(HandlePositionTool)选中任何 *** 纵工具可允许你交互时的移动,旋转或缩放物体。当你已经选择了一个工具时你可以在场景视图中单击任何一个物体选中它,现在按下F键使得该物体居中显示。
6当选中一个物体时你将看到Gizmo坐标,每个工具有不同的Gizmo坐标形式,平移旋转缩放。
7点击并拖动当前Gizmo坐标的任何一个坐标轴以便平移,旋转或缩放当前选中物体的变换(Transform)组件。你也可以通过单击并拖动Gizmo坐标的中心来在多个轴上 *** 纵物体。如果你有一个三键的鼠标,你可以通过单击中键来调整昀后调整的轴而不用直接点击它。
8参考变换组件(TransformComponent)部分获取更多内容。手柄位置工具(HandlePositionTool)用来控制物体或一组选中的物体的轴心如何和在哪里显示。选择中心(Center)意味着使用当前所选所有物体的共同轴心,选择轴心(Pivot)意味着将使用各个物体的实际轴心手柄位置设置为中心,使用物体的共同轴心手柄位置设置为轴心,使用实际的物体轴心。
9在场景视图中导航根据使用的鼠标的不同,有很多不同的方式可以在场景视图中导航。使用三键鼠标按住Option按钮并拖动鼠标左键可以使用旋转模式(Orbitmode)按住Option按钮并拖动鼠标中键可以使用拖动模式(Dragmode)按住Option按钮并拖动鼠标右键可以使用缩放模式(Zoommode)。也可以使用滚轮来缩放(略)视图工具模式视图工具的拖动模式快捷键Q。
10在拖动模式(DragMode)下,在场景视图中单击并拖动鼠标来上下左右移动视图。旋转(Orbit)和缩放(ZoomModes)模式也是昀常用的视图工具。保持视图工具选中并按住Option键即可进入旋转模式。单击并拖动鼠标,可以看到视图是如何旋转的。同时注意视图工具按钮从手型变成了眼睛。
11你可以通过按下Command按钮进入缩放模式。在这种模式下,单击并拖动鼠标将前后缩放你的视图。注意缩放模式的图标是一个放大镜。
方法很多种啊设置全局静态变量
制作一个全局脚本
登录的时候把登录名字保存 在第二个场景再加载
public class Record
{
public static string LoginName;
}
public class Record : MonoBehaviour
{
private static Record _instance;
public static Record Instance { get { return _instance; } }
public string LoginName;
private void Awake()
{
if (!_instance) _instance = this;
DontDestroyOnLoad(thisgameObject);
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)