Ekrana yazı yazarak halledilebilecek bir iş, bence bir oyun motoru kullanarak işleri zorlaştırmaya gerek yok. Bir veritabanında soruları, şıkları ve doğru şıkları tutabilirsiniz. Daha sonra bir form hazırlayarak yazıları veritabanından kolayca çekip hazırlayabilirsiniz. Zamanınız varsa, programlama öğrenerek halletmek istiyorsanız ve Windows üzerinde çalışacaksınız C# öğrenerek hazırlayabilirsiniz, çok zor bir değil ve bu iş için çok fazla programlama bilgisine ihtiyacınız yok. Sorularınızı sorabilirsiniz, elimden geldiğince yardımcı olmaya çalışırım.
Öncelikle ilginiz için minnettarım. Unity ile yola devam etmeye karar verdim. Asset Store'den bir quiz oyunu satın aldım. Ancak arkadaş doğru cevap sonucunda kullanıcıya bir şeyler gösterip doğru cevap verildiğini belirtmemiş. Kendim Illustator'den tick ve çarpı görselleri hazırladım. Ancak bunu bir türlü programa uyduramadım. Gerçekten tıkandım. Correct answer sonucu açılmasını istiyorum dogru canvasın sonra 2 saniye ekranda durup kaybolmasını istiyorum. Ancak bir türlü bunu yapamadım. Rica etsem yardım edebilir misiniz?
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class AllAnswers : MonoBehaviour {
public int idLevel;
public Text Question;
public Text AnswerA;
public Text AnswerB;
public Text AnswerC;
public Text AnswerD;
public Text infoAnswer;
public string[] questions;
public string[] alternativeA;
public string[] alternativeB;
public string[] alternativeC;
public string[] alternativeD;
public string[] corrects;
private int idQuestion;
private float points;
private float ques;
private float correct;
private int Finish;
public GameSound sd;
public GameObject TickCanvas;
// Use this for initialization
void Start ()
{
idLevel = PlayerPrefs.GetInt("idLevel");
idQuestion = 0;
ques = questions.Length;
Question.text = questions[idQuestion];
AnswerA.text = alternativeA[idQuestion];
AnswerB.text = alternativeB[idQuestion];
AnswerC.text = alternativeC[idQuestion];
AnswerD.text = alternativeD[idQuestion];
infoAnswer.text = "Correct Answers "+correct.ToString () + " of " + ques.ToString()+ " Questions.";
DontDestroyOnLoad (this);
}
public void Answersall(string alternative){
if (alternative == "A")
{
if(alternativeA[idQuestion] == corrects[idQuestion])
{
correct += 1;
TickCanvas.SetActive(true);
}
}
else if (alternative == "B")
{
if(alternativeB[idQuestion] == corrects[idQuestion])
{
correct += 1;
TickCanvas.SetActive(true);
}
}
else if (alternative == "C")
{
if(alternativeC[idQuestion] == corrects[idQuestion])
{
correct += 1;
TickCanvas.SetActive(true);
}
}
else if (alternative == "D")
{
if(alternativeD[idQuestion] == corrects[idQuestion])
{
correct += 1;
TickCanvas.SetActive(true);
}
}
nextQuestion ();
}
public void nextQuestion()
{
idQuestion += 1;
if (idQuestion <= (ques- 1))
{
Question.text = questions [idQuestion];
AnswerA.text = alternativeA [idQuestion];
AnswerB.text = alternativeB [idQuestion];
AnswerC.text = alternativeC [idQuestion];
AnswerD.text = alternativeD [idQuestion];
infoAnswer.text = "Correct Answers "+correct.ToString () + " of "+ques.ToString()+ " Questions.";
}
else
{
points = 100 * (correct / ques);
Finish = Mathf.RoundToInt(points);
if (Finish > PlayerPrefs.GetInt ("Finish" + idLevel.ToString ()))
{
PlayerPrefs.SetInt ("Finish"+idLevel.ToString(), Finish);
PlayerPrefs.SetInt ("correct"+idLevel.ToString(), (int)correct);
}
PlayerPrefs.SetInt ("FinishTemp"+idLevel.ToString(), Finish);
PlayerPrefs.SetInt ("correctTemp"+idLevel.ToString(), (int)correct);
Finishhh ();
}
}
public void Finishhh(){
Application.LoadLevel ("Finish");
}
}
Şuan bu kod hatalı durumda...