private void InitObject( LevelObjectView obj, ObjectTypeInfo objectTypeInfo, ObjectProtoInfo objectProtoInfo, SpawnLocation spawnLocation, LevelSettings levelSettings) { obj.transform.rotation = Quaternion.Euler(0f, spawnLocation.IsXFlipped ? 180f : 0f, 0f); var alternating = obj.GetComponent <AlternatingView>(); if (alternating != null) { int materialIndex = UnityEngine.Random.Range( 0, objectProtoInfo.AvailableMaterials.Length); alternating.Material = objectProtoInfo.AvailableMaterials[materialIndex]; } if (objectTypeInfo.Type == playerObjectType) { List <int> skillIds = playerStateStorage.Get().SkillIds; for (int i = 0; i < skillIds.Count; ++i) { Skill skill = skillStorage.Get(skillIds[i]); BaseSkill baseSkill = skillStorage.GetBase(skill.BaseId); ISkillHelper skillHelper = skillHelperStorage.Get(baseSkill.Type); skillHelper.AddSkill(skill, obj.gameObject); } } }