public void ConfigureShield(float maxHP, float hp, float regen, float speed, List <System.Object> fragments) { parent = transform.parent.GetComponent <Enemy>(); capacity = maxHP; referenceCapacity = maxHP; power = hp; regenRate = regen; rot = new Vector3(0f, 0f, speed); foreach (System.Object obj in fragments) { Dictionary <string, System.Object> fragDict = obj as Dictionary <string, System.Object>; float fragAngle = (float)(double)fragDict["fragAngle"]; //fragAngle is the angle in degrees clockwise from the front of the enemy where the center of this fragment is located //do NOT use fragAngle to directly set the fragment's angle, which is the leftmost edge of the fragment, not the center float fragArc = (float)(double)fragDict["fragArc"]; //width of fragment in degrees //make it GameObject frag = Instantiate(Resources.Load("Prefabs/MainCanvas/ShieldFragment")) as GameObject; ShieldFragment sf = frag.GetComponent <ShieldFragment>(); sf.SetManager(this); frag.transform.localEulerAngles = new Vector3(0f, 0f, fragAngle - (fragArc / 2f)); sf.SetArcDegrees(fragArc); } }
public void AddFragment(ShieldFragment sf) { fragments.Add(sf); }
public void AddFragment(ShieldFragment sf) { fragments.Add(sf); }