Esempio n. 1
0
    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;
    }
Esempio n. 2
0
    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;
    }
Esempio n. 3
0
	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;
	}