[英]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.