private void SpawnType(Credits.CreditLogType l, string txt1, string txt2) { GameObject gameObject = UnityEngine.Object.Instantiate <GameObject>(l.preset, this.maskPosition); Text[] componentsInChildren = gameObject.GetComponentsInChildren <Text>(); componentsInChildren[0].text = txt1; if (componentsInChildren.Length > 1) { componentsInChildren[1].text = txt2; } UnityEngine.Object.Destroy(gameObject, 12f / this.speed); this.spawnedLogs.Add(gameObject); CreditText component = gameObject.GetComponent <CreditText>(); component.move = true; component.speed *= this.speed; }
public void beginCredits() { // Sanitize input if (speed <= 0) { speed = 50; } // Calculate margin & fade % if (marginPercent < 0) { marginPercent = 0; } if (marginPercent > 45) { marginPercent = 45; } if (fadePercent < 0) { fadePercent = 0; } if (fadePercent > 50 - marginPercent) { fadePercent = 50 - marginPercent; } marginTop = (int)(Screen.height * marginPercent * 0.01); fadeTop = (int)(marginTop + Screen.height * fadePercent * 0.01); marginBot = Screen.height - marginTop; fadeBot = Screen.height - fadeTop; // Get font line height int lineHeight = (int)baseSkin.label.CalcHeight(new GUIContent("lp"), Screen.width) + 1; int originalSize = baseSkin.label.fontSize; baseSkin.label.fontSize = titleSize; int lineTitleHeight = (int)baseSkin.label.CalcHeight(new GUIContent("lp"), Screen.width) + 1; baseSkin.label.fontSize = originalSize; // Starting Y int y = Screen.height + lineSpacing; // Min position minPosition = Mathf.Max(lineHeight, lineTitleHeight); // Helpers int screenWidth = Screen.width; int middle = (int)(screenWidth * 0.5f); // Load from XML and calculate position XmlDocument root = new XmlDocument(); root.LoadXml(creditsFile.text); foreach (XmlNode node in root.SelectNodes("credits/credit")) { CreditType type = CreditLine.textToType(node.Attributes.GetNamedItem("type").Value); string data = node.Attributes.GetNamedItem("data").Value; string data2 = node.Attributes.GetNamedItem("data2").Value; if (type == CreditType.EmptySpace) { int v = 1; try{ v = int.Parse(data); }catch {} y += v * (lineHeight + lineSpacing); } else if (type == CreditType.Image) { CreditText line = new CreditText(); line.type = CreditTextType.Image; line.texture = Resources.Load(data, typeof(Texture2D)) as Texture2D; if (line.texture != null) { line.position = new Rect(middle - (line.texture.width / 2), y, line.texture.width, line.texture.height); lines.Add(line); y += line.texture.height + lineSpacing; } // Min/Max if (minPosition < line.texture.height) { minPosition = line.texture.height; } } else if (type == CreditType.SingleColumn) { CreditText line = new CreditText(); line.type = CreditTextType.SingleColumn; line.text = data; line.position = new Rect(0, y, screenWidth, lineHeight); lines.Add(line); y += lineHeight + lineSpacing; } else if (type == CreditType.Title) { CreditText line = new CreditText(); line.type = CreditTextType.Title; line.text = data; line.position = new Rect(0, y, screenWidth, lineTitleHeight); lines.Add(line); y += lineTitleHeight + lineSpacing; } else if (type == CreditType.TwoColumns) { CreditText line = new CreditText(); line.type = CreditTextType.TwoColumnHeader; line.text = data; line.position = new Rect(0, y, middle - 20, lineHeight); CreditText line2 = new CreditText(); line2.type = CreditTextType.TwoColumnText; line2.text = data2; line2.position = new Rect(middle + 20, y, middle - 20, lineHeight); lines.Add(line); lines.Add(line2); y += lineHeight + lineSpacing; } } // Start started = true; startTime = Time.time; lastUpdate = startTime; }
public void beginCredits() { // Sanitize input if(speed <= 0) speed = 50; // Calculate margin & fade % if(marginPercent < 0) marginPercent = 0; if(marginPercent > 45) marginPercent = 45; if(fadePercent < 0) fadePercent = 0; if(fadePercent > 50-marginPercent) fadePercent = 50-marginPercent; marginTop = (int)(Screen.height*marginPercent*0.01); fadeTop = (int)(marginTop+Screen.height*fadePercent*0.01); marginBot = Screen.height-marginTop; fadeBot = Screen.height-fadeTop; // Get font line height int lineHeight = (int)baseSkin.label.CalcHeight(new GUIContent("lp"), Screen.width)+1; int originalSize = baseSkin.label.fontSize; baseSkin.label.fontSize = titleSize; int lineTitleHeight = (int)baseSkin.label.CalcHeight(new GUIContent("lp"), Screen.width)+1; baseSkin.label.fontSize = originalSize; // Starting Y int y = Screen.height+lineSpacing; // Min position minPosition = Mathf.Max(lineHeight, lineTitleHeight); // Helpers int screenWidth = Screen.width; int middle = (int)(screenWidth*0.5f); // Load from XML and calculate position XmlDocument root = new XmlDocument(); root.LoadXml(creditsFile.text); foreach(XmlNode node in root.SelectNodes("credits/credit")) { CreditType type = CreditLine.textToType(node.Attributes.GetNamedItem("type").Value); string data = node.Attributes.GetNamedItem("data").Value; string data2 = node.Attributes.GetNamedItem("data2").Value; if(type == CreditType.EmptySpace) { int v = 1; try{v = int.Parse(data);}catch{} y += v*(lineHeight+lineSpacing); } else if(type == CreditType.Image) { CreditText line = new CreditText(); line.type = CreditTextType.Image; line.texture = Resources.Load(data, typeof(Texture2D)) as Texture2D; if(line.texture != null) { line.position = new Rect(middle-(line.texture.width/2), y, line.texture.width, line.texture.height); lines.Add(line); y += line.texture.height + lineSpacing; } // Min/Max if(minPosition < line.texture.height) minPosition = line.texture.height; } else if(type == CreditType.SingleColumn) { CreditText line = new CreditText(); line.type = CreditTextType.SingleColumn; line.text = data; line.position = new Rect(0, y, screenWidth, lineHeight); lines.Add(line); y += lineHeight + lineSpacing; } else if(type == CreditType.Title) { CreditText line = new CreditText(); line.type = CreditTextType.Title; line.text = data; line.position = new Rect(0, y, screenWidth, lineTitleHeight); lines.Add(line); y += lineTitleHeight + lineSpacing; } else if(type == CreditType.TwoColumns) { CreditText line = new CreditText(); line.type = CreditTextType.TwoColumnHeader; line.text = data; line.position = new Rect(0, y, middle-20, lineHeight); CreditText line2 = new CreditText(); line2.type = CreditTextType.TwoColumnText; line2.text = data2; line2.position = new Rect(middle+20, y, middle-20, lineHeight); lines.Add(line); lines.Add(line2); y += lineHeight + lineSpacing; } } // Start started = true; startTime = Time.time; lastUpdate = startTime; }