Exemple #1
0
        private GameObject InstantiateLoot(ContentPrefabReference prefab, Vector3 position)
        {
            GameObject obj = prefab.Instantiate();

            obj.transform.position = position + (Vector3)UnityEngine.Random.insideUnitCircle * DropRange;
            obj.transform.Rotate(0f, 0f, UnityEngine.Random.Range(0f, 360f));
            return(obj);
        }
 private void Enemy_OnKilled(IEnemy obj)
 {
     foreach (Vector2 pos in SpawnPositions)
     {
         Vector3    wpos       = transform.position + (Vector3)pos;
         GameObject newEnemyGO = ToSpawn.Instantiate();
         IEnemy     enemy      = newEnemyGO.GetComponent <IEnemy>();
         enemy.Init(wpos, obj.Path, obj.WaveHandler);
         enemy.PathIndex = _enemy.PathIndex;
         enemy.WaveHandler.AddEnemy(enemy);
     }
 }
        protected override void Apply()
        {
            GameObject go = Reference.Instantiate();

            go.name  = gameObject.name;
            go.tag   = gameObject.tag;
            go.layer = gameObject.layer;

            go.transform.position   = transform.position;
            go.transform.rotation   = transform.rotation;
            go.transform.localScale = transform.localScale;
            go.transform.parent     = transform.parent;

            DestroyImmediate(gameObject);
        }
Exemple #4
0
        private void Explode(Events.EventArgs args)
        {
            HitInfo hitInfo = args.GetObject <HitInfo>();

            float damage = hitInfo.DamageInfo.Damage * _damageMult.GetValue();
            float range  = _range.GetValue();

            Explosion explosion = ExplosionPrefab.Instantiate().GetComponent <Explosion>();

            explosion.transform.position = hitInfo.Point;
            explosion.Explode(damage, range);

            if (DepleteProjectile)
            {
                hitInfo.Projectile.Deplete();
            }
        }