public static DamageNature GetDamageNature() { string[] guids = AssetDatabase.FindAssets("t:DamageNature"); DamageNature damage = null; if (guids.Length > 0) { damage = AssetDatabase.LoadAssetAtPath <DamageNature>(AssetDatabase.GUIDToAssetPath(guids[0])); } return(damage); }
public static void CreateDamageNature() { DamageNature damage = GetDamageNature(); if (GetDamageNature() == null) { EditorTools.CreateAsset <DamageNature>("DamageNature"); } else { Selection.activeObject = damage; } }
void OnEnable() { faction = serializedObject.FindProperty("faction"); entityType = serializedObject.FindProperty("entityType"); subEntity = serializedObject.FindProperty("subEntity"); parentEntity = serializedObject.FindProperty("parentEntity"); isInvulnerable = serializedObject.FindProperty("isInvulnerable"); invulnerableSpawn = serializedObject.FindProperty("invulnerableSpawn"); randomLife = serializedObject.FindProperty("randomLife"); rndMinLife = serializedObject.FindProperty("rndMinLife"); rndMaxLife = serializedObject.FindProperty("rndMaxLife"); life = serializedObject.FindProperty("maxLife"); scorePoint = serializedObject.FindProperty("scorePoint"); isPooled = serializedObject.FindProperty("isPooled"); isExternalEndLife = serializedObject.FindProperty("isExternalEndLife"); isCollisionDamage = serializedObject.FindProperty("doDamageOnCollision"); damageNature = serializedObject.FindProperty("damageNature"); damagePoint = serializedObject.FindProperty("damagePoint"); damageThreshold = serializedObject.FindProperty("damageThreshold"); useTrigger = serializedObject.FindProperty("useTrigger"); addForceFromImpact = serializedObject.FindProperty("addForceFromImpact"); damagesSensitivity = serializedObject.FindProperty("damagesSensitivity"); spawnEffect = serializedObject.FindProperty("spawnEffects"); hitEffect = serializedObject.FindProperty("hitEffects"); healEffect = serializedObject.FindProperty("healEffects"); deathEffect = serializedObject.FindProperty("deathEffects"); spawnEffectOffset = serializedObject.FindProperty("spawnEffectOffset"); healEffectOffset = serializedObject.FindProperty("healEffectOffset"); hitEffectOffset = serializedObject.FindProperty("hitEffectOffset"); deathEffectOffset = serializedObject.FindProperty("deathEffectOffset"); onHit = serializedObject.FindProperty("onHit"); onEntitySpawn = serializedObject.FindProperty("onEntitySpawn"); onHeal = serializedObject.FindProperty("onHeal"); onEntityDestroy = serializedObject.FindProperty("onEntityDestroy"); showPropertie = serializedObject.FindProperty("showPropertie"); showDamage = serializedObject.FindProperty("showDamage"); showSensitivity = serializedObject.FindProperty("showSensitivity"); showEffect = serializedObject.FindProperty("showEffect"); showEvent = serializedObject.FindProperty("showEvent"); // Faction factions = CoreShooterKitEditor.GetAllFaction(); Array.Resize <string>(ref factionLabels, factions.Length); for (int i = 0; i < factions.Length; i++) { factionLabels[i] = factions[i].name; } // Damage type GameEntity t = (GameEntity)target; DamageNature damagesNature = CoreShooterKitEditor.GetDamageNature(); if (damagesNature != null) { damageLabels = damagesNature.damageNatures; int size = damagesSensitivity.arraySize; Array.Resize <float>(ref t.damagesSensitivity, damageLabels.Length); if (size == 0) { for (int i = 0; i < damageLabels.Length; i++) { t.damagesSensitivity[i] = 1; } } } else { Debug.LogWarning("The nature of damage doesn't exit"); } // update faction for (int i = 0; i < factions.Length; i++) { if (faction.objectReferenceValue == factions[i]) { factionIndex = i; } } }