Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#Unity脚本有没有加速实例化的方法_C#_Unity3d - Fatal编程技术网

C#Unity脚本有没有加速实例化的方法

C#Unity脚本有没有加速实例化的方法,c#,unity3d,C#,Unity3d,我有两个脚本可以互相对话,基本上我的生成脚本从一个简单的脚本中获取一个布尔值。在if语句的末尾,布尔值设置为true,以显示灯亮起。现在我有了一个碰撞器脚本,它实例化了2个预置。但是速度很慢。这个游戏应该很快,因为它已经被很多人演示过了。有没有办法加快这个速度呢 private bool Once = true; public Transform Spawnpoint1; public Transform Spawnpoint2; public GameObject Prefab1; publ

我有两个脚本可以互相对话,基本上我的生成脚本从一个简单的脚本中获取一个布尔值。在if语句的末尾,布尔值设置为true,以显示灯亮起。现在我有了一个碰撞器脚本,它实例化了2个预置。但是速度很慢。这个游戏应该很快,因为它已经被很多人演示过了。有没有办法加快这个速度呢

private bool Once = true;
public Transform Spawnpoint1;
public Transform Spawnpoint2;

public GameObject Prefab1;
public GameObject Prefab2;

void OnTriggerEnter2D(Collider2D collision)
{
    if (Once == true)
    {
        Debug.Log("It's true");
        if (LightOnOff.torchLit == true)
        {
            Debug.Log(" It's Lit");
            Instantiate(Prefab1, Spawnpoint1.position, Spawnpoint1.rotation);

            Instantiate(Prefab2, Spawnpoint2.position, Spawnpoint2.rotation);

            Once = false;
        }

    }
}
如果你想知道这个简单的脚本是这样的

public static bool torchLit;

public void lightOn()
{
    this.GetComponent<Light>().enabled = true;
    torchLit = true;
}
公共静态bool火炬;
公共空间照明()
{
this.GetComponent().enabled=true;
torchLit=真;
}
您可以使用。快速实例化对象是常见的做法

它是如何工作的

  • 在场景加载时实例化对象
  • 将对象
    acitve
    设置为
    false
    position
    设置为0,0,0
  • 当您需要对象时,只需将
    active
    设置为
    true
    并将
    position
    设置为所需的
    position
  • 当不再需要对象时,不要销毁,只需再次将
    acitve
    设置为
    false
    并将
    position
    设置为0,0,0

  • 我真的建议你看那个教程。也许做更深入的研究或者。。。只需使用
    Asset Store

    中的免费
    Asset
    哪一行代码慢,您是如何确定它慢的?代码行并不慢,生成的对象在
    Debug.Log(“它亮了”)之后会永远消失该命令显示在我的控制台中,因此我知道if语句起作用了,但这样做需要相当长的时间。众所周知,实例化和销毁gameobject需要大量资源。这是很容易访问的在线信息。看一看,我不知道我对Unity很陌生