public void ResolveSkill(string SkillName, GameObject User, Unit UserUnitComponent) { for (int i = 0; i < Skills.Count; ++i) { if (Skills[i].Name == SkillName && UserUnitComponent.GlobalCooldown < 0.0f) { UserUnitComponent.GlobalCooldown = Skills[i].GlobalCooldown; for (int j = 0; j < Skills[i].SkillEffects.Count; ++j) { Vector3 Offset = new Vector3(0, 0, 0); Offset += Skills[i].SkillEffects[j].OffsetForward * User.transform.forward; // Create all skill objects (projectiles, particles etc.) associated with skill. GameObject SkillObject = _MetaObjectPool.Instantiate( Skills[i].SkillEffects[j].SpawnObjectName, User.transform.position + Offset, User.transform.rotation); SkillObject.GetComponent <Skill>().UserUnit = UserUnitComponent; } break; } } }
// Update is called once per frame public override bool Resolve(Unit Target, Unit User) { if (_MetaObjectPool) { for (int i = 0; i < ObjectsToCreate.Count; ++i) { _MetaObjectPool.Instantiate(ObjectsToCreate[i], this.transform.position); } } return(true); }
// Start is called before the first frame update void Start() { Cursor.visible = false; _MetaObjectPool = GetComponent <MetaObjectPool>(); _MetaObjectPool.Instantiate("MetaGameCamera"); _MetaObjectPool.Instantiate("UnitPlayer"); _MetaObjectPool.Instantiate("UIGameMousePointer"); _MetaObjectPool.Instantiate("UIGameHeightMarker"); _MetaObjectPool.Instantiate("UnitCrate", new Vector3(14, 0.5f, 15)); _MetaObjectPool.Instantiate("UnitCrate", new Vector3(14, 1.5f, 15)); _MetaObjectPool.Instantiate("UnitCrate", new Vector3(15, 0.5f, 13)); _MetaObjectPool.Instantiate("UnitCrate", new Vector3(15, 1.5f, 13)); _MetaObjectPool.Instantiate("UnitCrate", new Vector3(14, 0.5f, 16)); _MetaObjectPool.Instantiate("UnitCrate", new Vector3(-2, 0.5f, -5)); _MetaObjectPool.Instantiate("UnitCrate", new Vector3(-3, 0.5f, -7)); _MetaObjectPool.Instantiate("UnitCrate", new Vector3(-4, 0.5f, -10)); _MetaObjectPool.Instantiate("UnitCrate", new Vector3(-4, 0.5f, -8)); _MetaObjectPool.Instantiate("UnitCrate", new Vector3(-6, 0.5f, -11)); _MetaObjectPool.Instantiate("UnitCrate", new Vector3(-6, 1.5f, -11)); _MetaObjectPool.Instantiate("UnitCrate", new Vector3(-8, 0.5f, -10)); _MetaObjectPool.Instantiate("UnitCrate", new Vector3(-8, 0.5f, -8)); _MetaObjectPool.Instantiate("UnitCrate", new Vector3(-8, 0.5f, -11)); _MetaObjectPool.Instantiate("UnitCrate", new Vector3(-9, 0.5f, -11)); _MetaObjectPool.Instantiate("UnitCrate", new Vector3(-9, 0.5f, -12)); _MetaObjectPool.Instantiate("UnitCrate", new Vector3(-9, 0.5f, -13)); _MetaObjectPool.Instantiate("UnitCrate", new Vector3(-10, 0.5f, -11)); _MetaObjectPool.Instantiate("UnitCrate", new Vector3(-10, 1.5f, -11)); _MetaObjectPool.Instantiate("UnitCrate", new Vector3(8, 0.5f, -11)); _MetaObjectPool.Instantiate("UnitCrate", new Vector3(8, 0.5f, -12)); _MetaObjectPool.Instantiate("UnitCrate", new Vector3(7, 0.5f, -13)); _MetaObjectPool.Instantiate("UnitCrate", new Vector3(6, 0.5f, -11)); _MetaObjectPool.Instantiate("UnitCrate", new Vector3(6, 1.5f, -11)); }