unity3d 如何保存禁用的游戏对象?

gc0ot86w  于 2023-02-09  发布在  其他
关注(0)|答案(1)|浏览(123)

我的游戏中有一个按钮,当我单击它时,它会禁用脚本

MyGameobject.SetActive(false)

但问题是当我重新启动游戏时,被禁用的游戏对象又被启用了。所以我的问题是如何保存被禁用的游戏对象?
我试过使用PlayerPrefs,但我意识到这没有意义。或者有意义吗?

bxjv4tth

bxjv4tth1#

使用PlayerPrefs

public GameObject MyGameObject;

void Start()
{
    // Check on start if gameobject should be enabled or disabled
    if (PlayerPrefs.GetInt("MyGoActiveState") == 0)
    {
        // Should be disabled
        MyGameObject.SetActive(false);
    }
    else
    {
        // Should be enabled
        MyGameObject.SetActive(true);
    }
}

// Assuming this is your callback for disabling the object
public void DisableGameObject()
{
    // Disable gameobject
    MyGameObject.SetActive(false);

    // Store in PlayerPrefs that gameobject is disabled
    PlayerPrefs.SetInt("MyGoActiveState", 0);
}

// Assuming this is your callback for enabling the object
public void EnableGameObject()
{
    // Enable gameobject
    MyGameObject.SetActive(true);

    // Store in PlayerPrefs that gameobject is enabled
    PlayerPrefs.SetInt("MyGoActiveState", 1);
}

对于单线风扇,也可以像这样设置活动状态,假设0用于表示禁用,其他任何值表示启用:

MyGameObject.SetActive(PlayerPrefs.GetInt("MyGoActiveState") == 0);

相关问题