コード例 #1
0
    // While collider (presumably player) is within, handle the exchange of color.
    void OnTriggerStay2D(Collider2D c)
    {
        if (isReady)
        {
            if ((player != null) && (c.gameObject.Equals(player)))
            {
                if (!playerScript.isLit)
                {
                    vortexScript.setAngle(new Vector3(0, 0, (Mathf.Atan2(player.transform.position.y - transform.position.y, player.transform.position.x - transform.position.x))));
                    vortexScript.setColor(characterRGB);
                    if (playerScript.r < characterRGB.r)
                    {
                        dR = characterRGB.r / 500f;
                    }
                    else
                    {
                        dR = -characterRGB.r / 800f;
                    }
                    if (playerScript.g < characterRGB.g)
                    {
                        dG = characterRGB.g / 500f;
                    }
                    else
                    {
                        dG = -characterRGB.g / 800f;
                    }
                    if (playerScript.b < characterRGB.b)
                    {
                        dB = characterRGB.b / 500f;
                    }
                    else
                    {
                        dB = -characterRGB.b / 800f;
                    }

                    shed();                      // Shed character's color.


                    // Give player new color + deltaColor.
                    Color newColor = new Color(playerScript.r + dR, playerScript.g + dG, playerScript.b + dB);
                    playerScript.setColor(newColor);
                    vortexScript.isFading = true;                     // Color-absorption cone sprite helper bool.
                }
                else
                {
                    if (!isDead)
                    {
                        isHealed = true;

                        dialogue.state = dialogue.HEALED;

                        vortexScript.setAngle(new Vector3(0, 0, (Mathf.Atan2(player.transform.position.y - transform.position.y, player.transform.position.x - transform.position.x))));
                        vortexScript.setColor(characterRGB);
                        if (lifeColor.r < characterRGB.r)
                        {
                            dR = (characterRGB.r - lifeColor.r) * 0.1f;
                        }
                        if (lifeColor.g < characterRGB.g)
                        {
                            dG = (characterRGB.g - lifeColor.g) * 0.1f;
                        }
                        if (lifeColor.b < characterRGB.b)
                        {
                            dB = (characterRGB.b - lifeColor.b) * 0.1f;
                        }
                        // Give player new color + deltaColor.
                        Color newColor = new Color(lifeColor.r + dR, lifeColor.g + dG, lifeColor.b + dB);
                        setColor(newColor);
                        vortexScript.isFading = true;                         // Color-absorption cone sprite helper bool.
                    }
                    else
                    {
                        vortexScript.setAngle(new Vector3(0, 0, (Mathf.Atan2(player.transform.position.y - transform.position.y, player.transform.position.x - transform.position.x))));
                        vortexScript.setColor(Color.gray);
                        if (lifeColor.r < Color.gray.r)
                        {
                            dR = (Color.gray.r - lifeColor.r) * 0.1f;
                        }
                        if (lifeColor.g < Color.gray.g)
                        {
                            dG = (Color.gray.g - lifeColor.g) * 0.1f;
                        }
                        if (lifeColor.b < Color.gray.b)
                        {
                            dB = (Color.gray.b - lifeColor.b) * 0.1f;
                        }
                        // Give player new color + deltaColor.
                        Color newColor = new Color(lifeColor.r + dR, lifeColor.g + dG, lifeColor.b + dB);
                        setColor(newColor);
                        vortexScript.isFading = true;                         // Color-absorption cone sprite helper bool.
                    }
                }
            }
        }
    }