Color GetColor(InteractableGlow objGlow)
    {
        Color color = new Color();

        if (edgeDetection == null || objGlow.overrideGlowColor)
        {
            color = objGlow.currentColor;
        }
        else
        {
            switch (edgeDetection.edgeColorMode)
            {
            case BladeEdgeDetection.EdgeColorMode.ColorRampTexture:
                color = objGlow.currentColor;
                break;

            case BladeEdgeDetection.EdgeColorMode.Gradient:
                color   = ColorOfGradient(edgeDetection.edgeColorGradient);
                color.a = objGlow.currentColor.a;
                break;

            case BladeEdgeDetection.EdgeColorMode.SimpleColor:
                color   = edgeDetection.edgeColor;
                color.a = objGlow.currentColor.a;
                break;

            default:
                color = objGlow.currentColor;
                break;
            }
        }

        return(color);
    }
    public void Start()
    {
        if (thisRendererParent == null)
        {
            Renderer[] childRenderers = transform.GetComponentsInChildrenRecursively <Renderer>();
            if (childRenderers.Length > 0)
            {
                thisRendererParent = childRenderers[0].gameObject;
            }
        }

        if (thisRendererParent != null)
        {
            glow = thisRendererParent.gameObject.GetOrAddComponent <InteractableGlow>();
            glow.recursiveChildRenderers  = recursiveChildRenderers;
            glow.useLargerPrepassMaterial = useLargerPrepassMaterial;
            glow.overrideGlowColor        = overrideGlowColor;
            glow.glowColor          = glowColor;
            glow.interactableObject = this;
        }
    }
Exemplo n.º 3
0
    IEnumerator Start()
    {
        debug = new DebugLogger(gameObject, () => DEBUG);

        originalPortalableObj = original.GetComponent <PortalableObject>();

        // Disallow collisions between a portal object and its copy
        foreach (var c1 in colliders)
        {
            foreach (var c2 in originalPortalableObj.colliders)
            {
                SuperspectivePhysics.IgnoreCollision(c1, c2);
            }
        }

        InteractableObject maybeInteract = original.GetComponent <InteractableObject>();

        maybeOriginalGlow = original.GetComponent <InteractableGlow>();

        if (maybeInteract != null)
        {
            InteractableObject interact = gameObject.AddComponent <InteractableObject>();
            interact.glowColor         = maybeInteract.glowColor;
            interact.overrideGlowColor = maybeInteract.overrideGlowColor;

            interact.OnLeftMouseButton     += maybeInteract.OnLeftMouseButton;
            interact.OnLeftMouseButtonDown += maybeInteract.OnLeftMouseButtonDown;
            interact.OnLeftMouseButtonUp   += maybeInteract.OnLeftMouseButtonUp;

            interact.OnMouseHover      += maybeInteract.OnMouseHover;
            interact.OnMouseHoverEnter += maybeInteract.OnMouseHoverEnter;
            interact.OnMouseHoverExit  += maybeInteract.OnMouseHoverExit;
        }

        TransformCopy();

        yield return(null);

        glow = GetComponent <InteractableGlow>();
    }
 public void Remove(InteractableGlow glowObj)
 {
     glowableObjects.Remove(glowObj);
 }
 public void Add(InteractableGlow glowObj)
 {
     glowableObjects.Add(glowObj);
 }