脚本对象在构建时不起作用

时间:2017-02-21 17:41:36

标签: c# unity3d unity5 unity2d

我希望这可能是我想念的简单。

我有一个ScriptableObject脚本,如下所示:

import java.util.Scanner;

public class OddSum {
public static void main(String[] args) {
    int num;
    int i = 1;
    int sum = 0;
    Scanner input = new Scanner(System.in);

    System.out.print("Enter a number: ");
    num = input.nextInt();
    input.close();

    while (i<=num) {

        // add i to sum before adding 2 to i
        sum += i;
        i += 2;

    }
    System.out.println("The sum of odd numbers between 1 and" + num + "is: "     + sum);
}

这在编辑器中运行良好,但是如果我向Android或Windows发布任何引用ScriptableObject的脚本,它就不起作用。我错过了什么?

例如,以下代码块似乎根本不执行:

using UnityEngine;
using System.Collections;

[CreateAssetMenu]
public class Item: ScriptableObject
{
    public string iname;
    public int iindex;
    public Sprite sprite;
    public GameObject itemObject;
    public int value;
    public string description;
    public itemType itemtype;

    public enum itemType
    {

        Consumable,
        Equippable,
    }

}

代码中的那些列表是上面脚本中定义的Item类型。我不知道如何调试它,因为我在编辑器中没有出现任何错误或警告。

这是填充库存的脚本。那里有一些垃圾但是definitley在编辑器中正常工作。只是没有建立。

for (int i = 0; i < 3; i++)
{
    int lootnum = Random.Range(0, 4);


    slot1 = itemdb[lootnum];
    tlist[i] = itemdb[lootnum];
    slotlist[i].transform.GetChild(0).GetComponent<Image>().sprite = itemdb[lootnum].sprite;
    slotlist[i].transform.GetChild(0).GetComponent<Image>().enabled = true;
}

1 个答案:

答案 0 :(得分:0)

如果脚本不在场景中,它是如何加载的?它是否使用资产包?如果是这种情况,则可能会从构建中删除该类。您可以在link.xml中包含该类,以确保它包含在内。另一种选择是在任何地方简单地引用包含场景中的脚本。