private void Update()
    {
        rend.GetPropertyBlock(props);

        var time = Time.time - startTime;

        if (canUpdate)
        {
            var eval = Color.Evaluate(time / TimeMultiplier);
            if (HUE > -0.9f)
            {
                eval       = AE_ColorHelper.ConvertRGBColorByHUE(eval, HUE);
                startColor = AE_ColorHelper.ConvertRGBColorByHUE(startColor, HUE);
            }
            props.SetColor(propertyID, eval * startColor);
        }
        if (time >= TimeMultiplier)
        {
            if (IsLoop)
            {
                startTime = Time.time;
            }
            else
            {
                canUpdate = false;
            }
        }

        rend.SetPropertyBlock(props);
    }
Ejemplo n.º 2
0
    private void UpdateColor(AE_EffectAnimatorProperty effect)
    {
        var settingColor = effect.CurrentInstance.GetComponent <AE_EffectSettingColor>();

        if (settingColor == null)
        {
            settingColor = effect.CurrentInstance.AddComponent <AE_EffectSettingColor>();
        }
        var hsv = AE_ColorHelper.ColorToHSV(settingColor.Color);

        hsv.H = HUE;
        settingColor.Color = AE_ColorHelper.HSVToColor(hsv);
    }
Ejemplo n.º 3
0
    private void UpdateColor()
    {
        var hue = AE_ColorHelper.ColorToHSV(Color).H;

        AE_ColorHelper.ChangeObjectColorByHUE(gameObject, hue);

        var physicsMotion = GetComponentInChildren <AE_PhysicsMotion>(true);

        if (physicsMotion != null)
        {
            physicsMotion.HUE = hue;
        }
        previousColor = Color;
    }
Ejemplo n.º 4
0
    void OnCollisionEnter(Collision collision)
    {
        if (isCollided && !UseCollisionDetect)
        {
            return;
        }
        foreach (ContactPoint contact in collision.contacts)
        {
            if (!isCollided)
            {
                isCollided = true;
                //offsetColliderPoint = contact.otherCollider.transform.position - contact.point;
                // lastCollider = contact.otherCollider;
                // lastContactPoint = contact;
                if (UseTargetPositionAfterCollision)
                {
                    if (targetAnchor != null)
                    {
                        Destroy(targetAnchor);
                    }

                    targetAnchor                    = new GameObject();
                    targetAnchor.hideFlags          = HideFlags.HideAndDontSave;
                    targetAnchor.transform.parent   = contact.otherCollider.transform;
                    targetAnchor.transform.position = contact.point;
                    targetAnchor.transform.rotation = transform.rotation;
                    //targetAnchor.transform.LookAt(contact.normal);
                }
            }
            var handler = CollisionEnter;
            if (handler != null)
            {
                handler(this, new AE_CollisionInfo {
                    ContactPoint = contact
                });
            }

            if (EffectOnCollision != null)
            {
                var instance = Instantiate(EffectOnCollision, contact.point, new Quaternion()) as GameObject;

                if (HUE > -0.9f)
                {
                    var color = instance.AddComponent <AE_EffectSettingColor>();
                    var hsv   = AE_ColorHelper.ColorToHSV(color.Color);
                    hsv.H       = HUE;
                    color.Color = AE_ColorHelper.HSVToColor(hsv);
                }

                if (LookAtNormal)
                {
                    instance.transform.LookAt(contact.point + contact.normal);
                }
                else
                {
                    instance.transform.rotation = transform.rotation;
                }
                if (!CollisionEffectInWorldSpace)
                {
                    instance.transform.parent = contact.otherCollider.transform.parent;
                }
                Destroy(instance, CollisionEffectDestroyAfter);
            }
        }

        foreach (var obj in DeactivateObjectsAfterCollision)
        {
            if (obj != null)
            {
                var ps = obj.GetComponent <ParticleSystem>();
                if (ps != null)
                {
                    ps.Stop();
                }
                else
                {
                    obj.SetActive(false);
                }
            }
        }


        if (rigid != null)
        {
            Destroy(rigid);
        }
        if (collid != null)
        {
            Destroy(collid);
        }
    }
Ejemplo n.º 5
0
    private void OnGUI()
    {
        if (Input.GetKeyUp(KeyCode.LeftArrow) || Input.GetKeyUp(KeyCode.RightArrow) || Input.GetKeyUp(KeyCode.DownArrow))
        {
            isButtonPressed = false;
        }

        if (GUI.Button(new Rect(10 * dpiScale, 15 * dpiScale, 135 * dpiScale, 37 * dpiScale), "PREVIOUS EFFECT") || (!isButtonPressed && Input.GetKeyDown(KeyCode.LeftArrow)))
        {
            isButtonPressed = true;
            ChangeCurrent(-1);
        }
        if (GUI.Button(new Rect(160 * dpiScale, 15 * dpiScale, 135 * dpiScale, 37 * dpiScale), "NEXT EFFECT") || (!isButtonPressed && Input.GetKeyDown(KeyCode.RightArrow)))
        {
            isButtonPressed = true;
            ChangeCurrent(+1);
        }
        var offset = 0f;

        //if (UseMobileVersion)
        //{

        //    offset += 50 * dpiScale;
        //    if (GUI.Button(new Rect(10*dpiScale, 63 * dpiScale, 285*dpiScale, 37*dpiScale), "ON / OFF REALISTIC BLOOM") ||
        //        (!isButtonPressed && Input.GetKeyDown(KeyCode.DownArrow)))
        //    {
        //        isUsedMobileBloom = !isUsedMobileBloom;
        //        RFX1_DistortionAndBloom.UseBloom = isUsedMobileBloom;
        //    }
        //    if(!isUsedMobileBloom) guiStyleHeaderMobile.normal.textColor = new Color(0.8f, 0.2f, 0.2f);
        //    else guiStyleHeaderMobile.normal.textColor = new Color(0.1f, 0.6f, 0.1f);
        //    GUI.Label(new Rect(400 * dpiScale, 15 * dpiScale, 100 * dpiScale, 20 * dpiScale), "Bloom is "+ (isUsedMobileBloom?"Enabled":"Disabled"), guiStyleHeaderMobile);

        //}
        if (GUI.Button(new Rect(10 * dpiScale, 63 * dpiScale + offset, 285 * dpiScale, 37 * dpiScale), "Day / Night") || (!isButtonPressed && Input.GetKeyDown(KeyCode.DownArrow)))
        {
            ChangeLight();
        }

        GUI.Label(new Rect(400 * dpiScale, 15 * dpiScale + offset / 2, 100 * dpiScale, 20 * dpiScale),
                  "Effect " + currentNomber +
                  "\"  \r\nHold any mouse button that would move the camera", guiStyleHeader);


        GUI.DrawTexture(new Rect(12 * dpiScale, 140 * dpiScale + offset, 285 * dpiScale, 15 * dpiScale), HUETexture, ScaleMode.StretchToFill, false, 0);

        float oldColorHUE = colorHUE;

        colorHUE = GUI.HorizontalSlider(new Rect(12 * dpiScale, 147 * dpiScale + offset, 285 * dpiScale, 15 * dpiScale), colorHUE, 0, 360);

        if (Mathf.Abs(oldColorHUE - colorHUE) > 0.001)
        {
            AE_ColorHelper.ChangeObjectColorByHUE(currentInstance, colorHUE / 360f);
            //var transformMotion = currentInstance.GetComponentInChildren<AE_TransformMotion>(true);
            //if (transformMotion != null)
            //{
            //    transformMotion.HUE = colorHUE / 360f;
            //    foreach (var collidedInstance in transformMotion.CollidedInstances)
            //    {
            //        if (collidedInstance != null) AE_ColorHelper.ChangeObjectColorByHUE(collidedInstance, colorHUE / 360f);
            //    }
            //}

            var animator = currentInstance.GetComponent <AE_AnimatorEvents>();
            if (animator != null)
            {
                animator.HUE = colorHUE / 360f;

                if (animator.Effect1.CurrentInstance != null)
                {
                    AE_ColorHelper.ChangeObjectColorByHUE(animator.Effect1.CurrentInstance, colorHUE / 360f);
                }
                if (animator.Effect2.CurrentInstance != null)
                {
                    AE_ColorHelper.ChangeObjectColorByHUE(animator.Effect2.CurrentInstance, colorHUE / 360f);
                }
                if (animator.Effect3.CurrentInstance != null)
                {
                    AE_ColorHelper.ChangeObjectColorByHUE(animator.Effect3.CurrentInstance, colorHUE / 360f);
                }
                if (animator.Effect4.CurrentInstance != null)
                {
                    AE_ColorHelper.ChangeObjectColorByHUE(animator.Effect4.CurrentInstance, colorHUE / 360f);
                }
            }

            if (UseMobileVersion)
            {
                //var settingColor = currentInstance.GetComponent<AE_EffectSettingColor>();
                //if (settingColor == null) settingColor = currentInstance.AddComponent<AE_EffectSettingColor>();
                //var hsv = AE_ColorHelper.ColorToHSV(settingColor.Color);
                //hsv.H = colorHUE / 360f;
                //settingColor.Color = AE_ColorHelper.HSVToColor(hsv);
            }
        }
    }