Javascript 在统一字母游戏中结束游戏
我是编程新手,我跟随了一段视频,讲述了如何在unity中创建一个字母游戏,在屏幕上显示一个字母,当选择其中5个字母时,它会移动到下一个字母。 我面临的问题是,在字母Z之后的各种角色的游戏仍在继续 当玩家完成字母Z后,我如何让游戏结束,而不是继续玩其他角色 下面是我的代码: 游戏控制器:Javascript 在统一字母游戏中结束游戏,javascript,c#,unity3d,game-development,Javascript,C#,Unity3d,Game Development,我是编程新手,我跟随了一段视频,讲述了如何在unity中创建一个字母游戏,在屏幕上显示一个字母,当选择其中5个字母时,它会移动到下一个字母。 我面临的问题是,在字母Z之后的各种角色的游戏仍在继续 当玩家完成字母Z后,我如何让游戏结束,而不是继续玩其他角色 下面是我的代码: 游戏控制器: using System.Collections.Generic; using System.Linq; using UnityEngine; public class GameController : Mon
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
public class GameController : MonoBehaviour
{
public char Letter = 'a';
int _correctAnswers = 5;
int _correctClicks;
void OnEnable()
{
GenerateBoard();
UpdateDiplayLetters();
}
void GenerateBoard()
{
var clickables = FindObjectsOfType<ClickableLetter>();
List<char> charsList = new List<char>();
for (int i = 0; i < _correctAnswers; i++)
charsList.Add(Letter);
for (int i = _correctAnswers; i < clickables.Length; i++)
{
var chosenLetter = ChooseInvalidRandomLetter();
charsList.Add(chosenLetter);
}
charsList = charsList
.OrderBy(t => UnityEngine.Random.Range(0, 10000))
.ToList();
for (int i = 0; i < clickables.Length; i++)
{
clickables[i].SetLetter(charsList[i]);
}
FindObjectOfType<RemainingCounterText>().SetRemaining(_correctAnswers - _correctClicks);
}
internal void HandleCorrectLetterClick(bool upperCase)
{
_correctClicks++;
FindObjectOfType<RemainingCounterText>().SetRemaining(_correctAnswers - _correctClicks);
if (_correctClicks >= _correctAnswers)
{
Letter++;
UpdateDiplayLetters();
_correctClicks = 0;
GenerateBoard();
}
}
private void UpdateDiplayLetters()
{
foreach (var displayletter in FindObjectsOfType<DisplayLetter>())
{
displayletter.SetLetter(Letter);
}
}
private char ChooseInvalidRandomLetter()
{
int a = UnityEngine.Random.Range(0, 26);
var randomLetter = (char)('a' + a);
while (randomLetter == Letter)
{
a = UnityEngine.Random.Range(0, 26);
randomLetter = (char)('a' + a);
}
return randomLetter;
}
}
使用System.Collections.Generic;
使用System.Linq;
使用UnityEngine;
公共类游戏控制器:单行为
{
公共字符字母='a';
int _=5;
int_;
void OnEnable()
{
生成板();
UpdatedPlayLetters();
}
无效生成板()
{
var clickables=FindObjectsOfType();
列表字符列表=新列表();
对于(int i=0;i<\u;i++)
charsList.Add(字母);
for(int i=_correctAnswers;iUnityEngine.Random.Range(0,10000))
.ToList();
对于(int i=0;i=\u correctAnswers)
{
字母++;
UpdatedPlayLetters();
_修正系数=0;
生成板();
}
}
私有void updateDisplayLetters()
{
foreach(FindObjectsOfType()中的变量displayletter)
{
displayletter.SetLetter(字母);
}
}
私有字符选择InvalidAndomletter()
{
int a=单位发动机随机范围(0,26);
var randomLetter=(char)('a'+a);
while(随机字母==字母)
{
a=单位发动机随机范围(0,26);
随机字母=(字符)('a'+a);
}
回信;
}
}
非常感谢您的帮助 如果我没弄错你的问题,你可以在
Letter='z'
重新启动场景,或者移动到另一个场景,上面写着“你完成了游戏,现在可以关闭游戏”,或者只是禁用场景中除游戏结束文本或类似内容之外的所有内容
我希望这个答案是有用的,祝你好运