コード例 #1
0
        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);
        }
コード例 #2
0
        public static void CreateDamageNature()
        {
            DamageNature damage = GetDamageNature();

            if (GetDamageNature() == null)
            {
                EditorTools.CreateAsset <DamageNature>("DamageNature");
            }
            else
            {
                Selection.activeObject = damage;
            }
        }
コード例 #3
0
        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;
                }
            }
        }