【发布时间】:2014-04-03 14:55:34
【问题描述】:
我创建了一个 Space Invaders 游戏,其中玩家必须射击显示随机数的小行星。在场景开始时也会随机生成一个总和。一旦玩家射击了一颗小行星,场景就会重新加载,正确答案会获得积分。
我遇到的问题是我至少需要一颗小行星才能显示正确答案。我目前正在通过重新加载场景来实现这一点,直到小行星编号与总和的答案相匹配。这可能需要多次重新加载,并且看起来非常糟糕。有没有更好的方法来实现这一点,看起来更好,效率更高。我在下面包括了我的努力。我感谢任何cmets。谢谢!
检查正确答案并重新加载场景的脚本。
#pragma strict
function Start ()
{
}
{
if (
Asteroid1_Script.asteroid1Value != (Sum_Script.sumA - Sum_Script.sumB) &&
Asteroid2_Script.asteroid2Value != (Sum_Script.sumA - Sum_Script.sumB) &&
Asteroid3_Script.asteroid3Value != (Sum_Script.sumA - Sum_Script.sumB) &&
Asteroid4_Script.asteroid4Value != (Sum_Script.sumA - Sum_Script.sumB) &&
Asteroid5_Script.asteroid5Value != (Sum_Script.sumA - Sum_Script.sumB)
)
{
Application.LoadLevel("L1");
}
}
随机生成总和的脚本。
#pragma strict
static var sumA :int = 0;
static var sumB :int = 0;
function Start ()
{
var newSumA = Random.Range(6,10);
sumA = newSumA;
var newSumB = Random.Range(1,6);
sumB = newSumB;
}
function Update () {
//Question Output.
guiText.text = sumA.ToString() + " - " + sumB.ToString()+ " =";
}
生成小行星随机数的脚本。
#pragma strict
var mainCam: Camera;
static var asteroid1Value : int = 0;
var asteroid1 : Transform;
var Asteroid1Style : GUIStyle;
function Start ()
{
var newAsteroid1Value = Random.Range(0,10);
asteroid1Value = newAsteroid1Value;
asteroid1.position.x = mainCam.ScreenToWorldPoint (new Vector3 (160f, 0f, 0f)).x;
asteroid1.position.y = mainCam.ScreenToWorldPoint (new Vector3 (0f, 450f, 0f)).y;
}
function OnGUI()
{
var point = Camera.main.WorldToScreenPoint(transform.position);
GUI.Label(new Rect(point.x, Screen.currentResolution.height - point.y - 530, 110, 100), asteroid1Value.ToString(), Asteroid1Style);
}
function OnCollisionEnter(col : Collision)
{
if(asteroid1Value == (Sum_Script.sumA - Sum_Script.sumB))
{
Destroy(gameObject);
Score_Script.score ++;
}
if(asteroid1Value != (Sum_Script.sumA - Sum_Script.sumB))
{
Score_Script.score --;
}
}
【问题讨论】:
-
这不是javascript,是吗?
-
为什么不随机选择 4 颗小行星和正确答案的一颗而不是 5 颗随机小行星?
-
@Bergi 看起来“unityscript”非常类似于 javascript,并且经常混淆。
-
@JamesMontagne 或 UnrealScript...(尽管我认为您在这个方面是对的。)
标签: random unity3d unityscript