Unity3d 应用程序不会加载到下一个场景
对于我的应用程序的第一级,一切似乎都很好。在能够解决我的游戏逻辑后,它将加载游戏的下一个级别 但是,由于某些原因,在连续的级别上,它不会加载。我的状况可能有问题。但我确信这不是向量的问题 问题是我无法识别它 我的代码如下:Unity3d 应用程序不会加载到下一个场景,unity3d,monodevelop,unityscript,Unity3d,Monodevelop,Unityscript,对于我的应用程序的第一级,一切似乎都很好。在能够解决我的游戏逻辑后,它将加载游戏的下一个级别 但是,由于某些原因,在连续的级别上,它不会加载。我的状况可能有问题。但我确信这不是向量的问题 问题是我无法识别它 我的代码如下: #pragma strict // This Script is called when the User Clicks on the Frog. var FrogName : GameObject; var frogone : GameObject; var fro
#pragma strict
// This Script is called when the User Clicks on the Frog.
var FrogName : GameObject;
var frogone : GameObject;
var frogtwo : GameObject;
var frogthree : GameObject;
var frogfour : GameObject;
function Start(){
FrogName = GameObject.Find(this.name);
}
function OnMouseDown(){
var Target = GameObject.Find("Script").GetComponent(FourFrogChangePosition);
var Target2 = GameObject.Find("Script").GetComponent(FourFrogProperty);
frogone = GameObject.Find("frog1");
frogtwo = GameObject.Find("frog2");
frogthree = GameObject.Find("frog3");
frogfour = GameObject.Find("frog4");
if (Target.Firstclick ==null){
Target.Firstclick =FrogName;
return;
}
if (Target.Firstclick !=null && Target.Secondclick ==null){
Target.Secondclick =FrogName;
Target2.Start();
Target.changePosition();
if(frogone.transform.position == Vector2(-1.343934f, 1.600096f) && frogtwo.transform.position == Vector2(2.960639f, -0.5253699f) && frogthree.transform.position == Vector2(1.920852f, 1.716066f) && frogfour.transform.position == Vector2(-1.871236f, -0.6542034f) ){
yield WaitForSeconds (2.5);
Application.LoadLevel("Pond Level Medium");
}
if(frogone.transform.position == Vector2(-1.871236f, -0.6542034f) && frogtwo.transform.position == Vector2(2.960639f, -0.5253699f) && frogthree.transform.position == Vector2(1.920852f, 1.716066f) && frogfour.transform.position == Vector2(-1.871236f, -0.6542034f) ){
yield WaitForSeconds (2.5);
Application.LoadLevel("Pond Level Medium");
}
return;
}
}
这是不加载到下一级的脚本。你能帮我确定这个脚本中缺少什么逻辑吗 游戏是否应该加载更多的关卡而不仅仅是池塘关卡?因为我看不到任何逻辑加载另一个级别?另外,请尽量避免像frogone.transform.position==Vector2-1.871236f,-0.6542034f这样的条件。更好的方法是将这些位置存储在变量中,基于浮点不准确度,我将测试到目标的距离。像Vector2 lDiff=frogone.transform.position-Vector2-1.871236f,-0.6542034f;随后,您可以使用lDiff.magnity表示到目标的距离。首先,unity 3D有自己的游戏引擎。现在,在将这些向量存储在一个变量中的情况下,我已经尝试过了,结果产生了一个非常复杂、非常长的代码,它影响了整个系统。在使用Mono develop进行编码时,您可以在一个平台上创建javascript,该平台由unity gameengine支持。要加载的Application.LoadLevelLevel是用于加载下一个场景的代码。因为所有的东西都是在3D中创建的,所以不能只存储一个变量然后进行比较。如果你想要一个更简单的代码,你必须声明它。你声明你想要加载连续的级别。然而,只有用于加载一级应用程序的代码;代码中未引用其他级别。我希望会有另一个应用程序。负荷水平池2级介质;或者别的什么。因此我的问题是,因为所有的东西都是在3D中创建的,所以你不能只存储一个变量然后比较它,现在,在存储这些向量的情况下。。。影响整个系统。要么我不明白你在说什么,要么你做错了。无论哪种方式,硬编码位置都不是一件好事:1。如果以任何方式移动或缩放场景,代码将不再工作。2.如果不这样做,代码的可读性就会提高。FrogoneLocation==EndOfLevelPosition vs frogone.transform.position==Vector2-1.871236f,-0.6542034f。