C# 如何在unity c中使对象可序列化#

C# 如何在unity c中使对象可序列化#,c#,object,unity3d,serializable,C#,Object,Unity3d,Serializable,起初它是一个文本,但我希望它是一个图像/精灵,所以我把它改为对象。但现在我犯了这些错误。我的错误在第50行和第51行 请帮忙:( 错误:无法对object类型的表达式应用索引 错误:赋值的左侧必须是变量或属性 索引器 使用系统集合; 使用System.Collections.Generic; 使用UnityEngine; 使用UnityEngine.UI; 公共类Kuis:单一行为{ [SerializeField]文本teksPertanyaan; [SerializeField]对象[]te

起初它是一个文本,但我希望它是一个图像/精灵,所以我把它改为对象。但现在我犯了这些错误。我的错误在第50行和第51行

请帮忙:(

错误:无法对object类型的表达式应用索引

错误:赋值的左侧必须是变量或属性 索引器

使用系统集合;
使用System.Collections.Generic;
使用UnityEngine;
使用UnityEngine.UI;
公共类Kuis:单一行为{
[SerializeField]文本teksPertanyaan;
[SerializeField]对象[]teksPilihan;
[SerializeField]Soal[]Soal;
[序列化字段]int indexsoal;
//德克拉拉西lcm
int a,b,m,x,hasil;
//用于初始化
无效开始(){
a=4;
b=5;
m=9;
x=0;
for(int i=0;i
teksPilihan[i].ToString对我来说毫无意义。首先,如果需要字符串表示,需要正确调用方法-teksPilihan[i].ToString()带括号。但是字符串在C#中是不可变的,所以我不确定您希望实现什么。也许您想将传入的数据转换为字符串?如果是这样,转换应该在等式的另一端完成。关于第一个错误:如果
Soal.pilihan
的类型在其类中没有实现,您就不能执行这样的转换但是它似乎是一个数组,所以它可能是这样的。
teksPilihan[i]。ToString=soal[\u indexsoal]。pilihan[i];
你到底想用它实现什么?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Kuis : MonoBehaviour {
    [SerializeField] Text teksPertanyaan;
    [SerializeField] Object[] teksPilihan;
    [SerializeField] Soal[] soal;
    [SerializeField] int indeksSoal;

//deklarasi lcm
int a, b, m, x, hasil;

// Use this for initialization
void Start () {
    a = 4;
    b = 5;
    m = 9;
    x = 0;

    for (int i = 0; i < soal.Length; i++) {
        x = (a * x + b) % m;
        hasil = x % 3;
        Debug.Log("" +hasil);
        tampilSoal (hasil);
    }
}

// Update is called once per frame
void Update () {

}

IEnumerator dealay(){
    yield return new WaitForSeconds (1);
    //tampilSoal (Random.Range (1, 5));
    tampilSoal (Random.Range (0, soal.Length));
    //Debug.Log("" +hasil);
    Debug.Log("" +indeksSoal);
}

public void konten(){
    StartCoroutine (dealay ());
}

void tampilSoal(int _indeksSoal){
    indeksSoal = _indeksSoal;
    teksPertanyaan.text = soal [_indeksSoal].pertanyaan;
    for (int i = 0; i < soal [_indeksSoal].pilihan.Length; i++) {
        teksPilihan [i].ToString = soal [_indeksSoal].pilihan [i];
    }
}

public void verifikasiJawaban(int _indeksJawaban){
    if (_indeksJawaban == soal [indeksSoal].indeksJawaban) {
        print ("Jawaban Benar!");
        konten ();
    }
    else {
        //hilangSoal.SetActive (false);
        print ("Jawaban Salah!");
        konten ();
    }
}
}