C# 我如何在面板状插槽中实例化一个预置,并检测它何时';是否已满并设置滚动选项?

C# 我如何在面板状插槽中实例化一个预置,并检测它何时';是否已满并设置滚动选项?,c#,unity3d,C#,Unity3d,我试着做一个垂直的清单,就像我在图中展示的那样。 我希望能够在可用项目的数量中添加插槽,并创建一个schroolbar以查看所有可用插槽。 我将使用开关来切换精灵。 我需要为每个拾取的项目创建一个槽预制实例。 我已经尝试了我的自我实现ip,但它给了我一个2个错误,我试图安装去预制。 以下是错误: 1 Setting the parent of a transform which resides in a prefab is disabled to prevent data corruptio

我试着做一个垂直的清单,就像我在图中展示的那样。

我希望能够在可用项目的数量中添加插槽,并创建一个schroolbar以查看所有可用插槽。 我将使用开关来切换精灵。 我需要为每个拾取的项目创建一个槽预制实例。 我已经尝试了我的自我实现ip,但它给了我一个2个错误,我试图安装去预制。 以下是错误:

1 Setting the parent of a transform which resides in a prefab is 
disabled to prevent data corruption.
UnityEngine.Transform:SetParent(Transform, Boolean)
additem:CreateA() (at Assets/inventory ultimate pt/additem.cs:49)
additem:Start() (at Assets/inventory ultimate pt/additem.cs:35)

the line in question is
the void createA prefabtoinstatiate.transform.SetParent(panel.transform, false);


2 NullReferenceException: Object reference not set to an instance of an 
object
additem.CreateA () (at Assets/inventory ultimate pt/additem.cs:50)
additem.Start () (at Assets/inventory ultimate pt/additem.cs:35)

the line in question is
title_text.text = title_text1.text;
这是到目前为止我的代码

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class additem : MonoBehaviour {
public static int havepick = 0;
public Transform prefabtoinstatiate;
public GameObject panel;
public static Text title_text;
public static Text description_text;
public static Text amount_text;
public static Sprite image;
public static int amountx = 0;

public Text title_text1;
public Text description_text1;
public Text amount_text1;
public Sprite image_icon_small_healling;
public Sprite image_icon_medium_healling;
public Sprite image_icon_big_healling;
public Sprite image_icon_small_stamina;
public Sprite image_icon_medium_stamina;
public Sprite image_icon_big_stamina;
public Sprite image_icon_small_magic;
public Sprite image_icon_medium_magic;
public Sprite image_icon_big_magic;
public Sprite image_icon_small_defence;
public Sprite image_icon_medium_defence;
public Sprite image_icon_big_defence;

public int image_number_count;
// Use this for initialization
void Start () {

    CreateA ();

}

// Update is called once per frame
void Update () {
    description_text1.text = "Small healling Potion " +
        "Give You 10 Points Of Healling";
    amount_text1.text = "Amount: " + amountx;
    title_text1.text= "Small Healling Potion";

}
public void CreateA() {

    prefabtoinstatiate.transform.SetParent(panel.transform, false);
    title_text.text = title_text1.text;
    description_text.text= description_text1.text;
    amount_text.text =amount_text1.text;
}
public void changeimages()
{
    switch (image_number_count) 
    {
        case 0:
        GetComponent <Image>().sprite = image_icon_small_healling;
        image_number_count++;
        break;
        case 1:
        GetComponent <Image>().sprite = image_icon_medium_healling;
        image_number_count++;
        break;
        case 2:
        GetComponent <Image>().sprite = image_icon_big_healling;
        image_number_count++;
        break;
        case 3:
        GetComponent <Image>().sprite = image_icon_small_stamina;
        image_number_count++;
        break;
        case 4:
        GetComponent <Image>().sprite = image_icon_medium_stamina;
        image_number_count++;
        break;
        case 5:
        GetComponent <Image>().sprite = image_icon_big_stamina;
        image_number_count++;
        break;
        case 6:
        GetComponent <Image>().sprite = image_icon_small_magic;
        image_number_count++;
        break;
        case 7:
        GetComponent <Image>().sprite = image_icon_medium_magic;
        image_number_count++;
        break;
        case 8:
        GetComponent <Image>().sprite = image_icon_big_magic;
        image_number_count++;
        break;
        case 9:
        GetComponent <Image>().sprite = image_icon_small_defence;
        image_number_count++;
        break;
        case 10:
        GetComponent <Image>().sprite = image_icon_medium_defence;
        image_number_count++;
        break;
        case 11:
        GetComponent <Image>().sprite = image_icon_big_defence;
        image_number_count++;
        break;
    }
}
}
使用UnityEngine;
使用系统集合;
使用UnityEngine.UI;
公共类附加项:单行为{
公共静态int havepick=0;
公共设施;
公共游戏对象面板;
公共静态文本标题_文本;
公共静态文本描述;
公共静态文本量\u文本;
公共静态精灵形象;
公共静态整数x=0;
公共文本标题_text1;
公共文本描述_text1;
公共文本量_text1;
公共精灵图像\u图标\u小\u治疗;
公共精灵图像\u图标\u中等\u治疗;
公共精灵形象\u图标\u大\u治疗;
公共精灵形象\u图标\u小\u耐力;
公共精灵形象\图标\中等\耐力;
公共精灵形象、图标、体魄;
公共精灵形象\u图标\u小\u魔术;
公共精灵形象\图标\媒介\魔法;
公共精灵形象\u图标\u大\u魔术;
公共精灵形象(图标)(小)(防御);;
公共精灵形象、图标、媒体、防御;
公共精灵形象、图标、大防御;
公共整数图像\编号\计数;
//用于初始化
无效开始(){
CreateA();
}
//每帧调用一次更新
无效更新(){
description\u text1.text=“小型治疗药剂”+
“给你10点治疗”;
amount_text1.text=“amount:+amountx;
title_text1.text=“小治疗药剂”;
}
公共void CreateA(){
预置instatate.transform.SetParent(panel.transform,false);
title_text.text=title_text1.text;
description_text.text=description_text1.text;
amount\u text.text=amount\u text1.text;
}
公共图像()
{
开关(图像编号计数)
{
案例0:
GetComponent().sprite=image\u icon\u small\u healing;
图像\数字\计数++;
打破
案例1:
GetComponent().sprite=image\u icon\u medium\u healing;
图像\数字\计数++;
打破
案例2:
GetComponent().sprite=image\u icon\u big\u healing;
图像\数字\计数++;
打破
案例3:
GetComponent().sprite=image\u icon\u small\u耐力;
图像\数字\计数++;
打破
案例4:
GetComponent().sprite=图像\图标\中等\耐力;
图像\数字\计数++;
打破
案例5:
GetComponent().sprite=image\u icon\u big\u耐力;
图像\数字\计数++;
打破
案例6:
GetComponent().sprite=image\u icon\u small\u magic;
图像\数字\计数++;
打破
案例7:
GetComponent().sprite=image\u icon\u medium\u magic;
图像\数字\计数++;
打破
案例8:
GetComponent().sprite=image\u icon\u big\u magic;
图像\数字\计数++;
打破
案例9:
GetComponent().sprite=image\u icon\u small\u防御;
图像\数字\计数++;
打破
案例10:
GetComponent().sprite=image\u icon\u medium\u defence;
图像\数字\计数++;
打破
案例11:
GetComponent().sprite=image\u icon\u big\u防御;
图像\数字\计数++;
打破
}
}
}

读取行布局和滚动矩形。然后,只需将预置实例化为子对象,它们就可以完美地滚动了。关于你的例外情况;这不是你实例化事物的方式。您必须使用
实例化(原始:preparetoinstatite,父:panel.transform)
@FredrikSchön我已经尝试了您的代码,它给出了这个错误Assets/inventory-ultimate-pt/additem.cs(48,17):错误CS1501:方法实例化“takes 2”没有重载arguments@helderventuraemm是的,确实如此:您是否在某个地方定义了自己的名为
实例化
的方法?我猜和的组合正是您所要查找的。您的第一个错误实际上是不言自明的:
设置驻留在预置中的变换的父级是禁用的,以防止数据损坏。
您试图将父级设置为
面板
,它似乎是一个预置,而不是场景中的对象。第二个错误:未设置
title\u text
title\u text1
,因此请逐行添加断点和代码,以查看发生的情况以及可能重复的原因