簡體   English   中英

從ScriptableObject類中刪除屬性/字段

[英]Removing a property / field from ScriptableObject class

我也將其發布到Unity Answers,但沒有獲得任何成功,所以我想我也可以在這里嘗試。

因此,我正在使用ScriptableObject包含武器定義的Unity游戲中進行一些重構。 我要刪除武器定義中的一個公共屬性,因為不再需要它。 這是我的全部課程,我想擺脫shotParticlesPrefab

public class WeaponDefinition : ScriptableObject
{
    public const int DefaultWeaponDamage = 50;
    public const float DefaultWeaponFireRate = 0.25f;
    public const float DefaultWeaponShotSpeed = 600;

    public ActorWeaponShot shotPrefab;

    public ParticleSystem shotParticlesPrefab;

    public AudioClip shotAudio;

    public int damage = DefaultWeaponDamage;

    public float fireRate = DefaultWeaponFireRate;

    public float shotSpeed = DefaultWeaponShotSpeed;
}

但是,當我嘗試從ScriptableObject中刪除屬性時,Unity給我以下錯誤:

資產/腳本/演員/ActorWeapon.cs(64,53):錯誤CS1061:類型“ WeaponDefinition”不包含“ shotParticlesPrefab”的定義,並且找不到類型為“ WeaponDefinition”的擴展方法“ shotParticlesPrefab”。 您是否缺少裝配參考?

我嘗試重新啟動Unity和Visual Studio,但是重新啟動后,由於該錯誤,我的任何預制板上的所有腳本均無法加載。 我還嘗試清理現有武器定義中的引用(基本上將shotParticlesPrefab設置為“無”),但那里也不高興。 恢復該屬性后,所有屬性均恢復正常,但是我卻擁有不再需要的屬性。

解決這個問題的正確方法是什么? 在項目中創建ScriptableObject的實例后,是否可以刪除該屬性? 在進行更改之前,是否必須刪除ScriptableObject的所有現有實例? 那將是一個相當丑陋的解決方案,所以我還沒有嘗試過。 :|

我最大的Google-Fu嘗試在類似此問題上沒有產生任何結果,所以我在這里。 :)任何想法將不勝感激。 謝謝。

ActorWeapon正在嘗試使用現在不存在的屬性,請打開ActorWeapon並刪除引用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM