private void CreateProjectile() { ConfigureProjectile(); CreateFireEffect(); GameObject loadedPrefab = Resources.Load("Projectiles/" + prefabName) as GameObject; if (loadedPrefab == null) { Debug.LogError("Prefab was null"); return; } //Quaternion rot = Quaternion.FromToRotation(effectOrigin, shootDirection);//Quaternion.LookRotation(shootDirection, Vector3.forward); GameObject shot = VisualEffectManager.CreateVisualEffect(loadedPrefab, effectOrigin, shotPos.rotation); Projectile shotScript = shot.GetComponent <Projectile>(); if (error != 0f) { float e = Random.Range(-error, error); shot.transform.rotation = shotPos.rotation * Quaternion.Euler(shotPos.rotation.x, shotPos.rotation.y, e); if (shotScript.ProjectileMovement.lobbed) { shotScript.ProjectileMovement.angle += e; } } shotScript.Initialize(parentEffect, layerMask, 0f, parentEffect.effectDamage); //if (kickBack) { // parentAbility.source.GetComponent<Rigidbody2D>().AddForce(-shotPos.up * kickStrength); //} }
private void CreateFireEffect() { ConfigureMeleeAttack(); GameObject effect = VisualEffectManager.CreateVisualEffect(fireEffect, effectOrigin, effectTransform.rotation); if (parentAbility.source.Facing == Constants.EntityFacing.Left) { effect.GetComponentInChildren <ParticleSystem>().transform.localScale = new Vector3(-1, 1, 1); } VisualEffectManager.DestroyVFX(effect, 1f); }
private void CreateFireEffect() { GameObject firePrefab = Resources.Load(((EffectAttack)parentEffect).fireEffectName) as GameObject; if (firePrefab == null) { //Debug.LogError("Fire Prefab Null"); Debug.LogWarning(parentAbility.abilityName + " is firing with no fire prefab"); return; } GameObject fireEffect = VisualEffectManager.CreateVisualEffect(firePrefab, effectOrigin, Quaternion.identity); }
private void CreateHitEffects(RaycastHit2D hit) { Vector2 rayDir = Vector2.Reflect((hit.point - effectOrigin).normalized, hit.normal); Quaternion impactRotation = TargetingUtilities.CalculateImpactRotation(rayDir); GameObject hitPrefab = Resources.Load(((EffectAttack)parentEffect).impactEffectName) as GameObject; GameObject hitEffect = VisualEffectManager.CreateVisualEffect(hitPrefab, hit.point, impactRotation); VisualEffectManager.SetParticleEffectLayer(hitEffect, hit.collider.gameObject); //ParticleSystem[] ps = hitEffect.GetComponentsInChildren<ParticleSystem>(); //SpriteRenderer hitSprite = hit.collider.gameObject.GetComponentInChildren<SpriteRenderer>(); //for (int i = 0; i < ps.Length; i++) { // ps[i].GetComponent<ParticleSystemRenderer>().sortingOrder = hitSprite.sortingOrder; //} }
private void CreateMeleeAttack() { //Grid.EventManager.RemoveListener(Constants.GameEvent.AnimationEvent, OnAnimationEvent); ConfigureMeleeAttack(); GameObject loadedPrefab = Resources.Load("Melee/" + prefabName) as GameObject; if (loadedPrefab == null) { Debug.LogError("Prefab was null : " + prefabName); return; } GameObject hit = VisualEffectManager.CreateVisualEffect(loadedPrefab, effectOrigin, Quaternion.identity); MeleeHit hitScript = hit.GetComponent <MeleeHit>(); hit.transform.SetParent(parentAbility.source.transform, true); hitScript.Initialize(parentEffect, layerMask, 0f, parentEffect.effectDamage); }
private void CreateMeleeAttack() { ConfigureMeleeAttack(); GameObject loadedPrefab = Resources.Load("HitPrefabs/" + prefabName) as GameObject; if (loadedPrefab == null) { Debug.LogError("Prefab was null : " + prefabName); return; } //Debug.Log("Attack Created"); GameObject hit = VisualEffectManager.CreateVisualEffect(loadedPrefab, effectOrigin, Quaternion.identity); MeleeHit hitScript = hit.GetComponent <MeleeHit>(); hit.transform.SetParent(parentAbility.source.transform, true); hitScript.Initialize(parentEffect, layerMask, 0f, parentEffect.effectDamage); }
protected virtual void OnTriggerStay2D(Collider2D other) { if ((LayerMask & 1 << other.gameObject.layer) == 1 << other.gameObject.layer) { //Debug.Log("hit " + other.gameObject.name); Entity hitTarget = other.gameObject.GetComponent <Entity>(); if (!CheckHitList(hitTarget)) { return; } parentEffect.Apply(other.gameObject); GameObject effect = null; if (hitEffect != null) { effect = VisualEffectManager.CreateVisualEffect(hitEffect, other.transform.position, Quaternion.identity); Destroy(effect, 1f); } } }