예제 #1
0
    public void updateButtonToState(PlanetUnityButtonState newState)
    {
        state = newState;

        if(state == PlanetUnityButtonState.Normal)
        {
            if (touchColorExists) {
                if (savedColor != null) {
                    gameObject.renderer.material.color = savedColor;
                } else if (colorExists) {
                    gameObject.renderer.material.color = new Color (color.r, color.g, color.b, color.a);
                } else {
                    gameObject.renderer.material.color = Color.white;
                }
            } else {
                gameObject.renderer.material.color = savedColor;
            }
        }
        if(state == PlanetUnityButtonState.Highlighted)
        {
            if(touchColorExists) {
                savedColor = gameObject.renderer.material.color;
                gameObject.renderer.material.color = new Color(touchColor.r, touchColor.g, touchColor.b, touchColor.a);
            }
        }
    }
예제 #2
0
    public void OnMouseDown()
    {
        entity.performTouchDown ();

        mouseDownTime = DateTime.Now;
        mouseDownPos = Input.mousePosition;

        trackingMouse = true;
        btnState = PlanetUnityButtonState.Highlighted;
        entity.updateButtonToState (PlanetUnityButtonState.Highlighted);

        NotificationCenter.postNotification (null, PlanetUnity.BUTTONTOUCHDOWN, NotificationCenter.Args("sender", this));
    }
예제 #3
0
    public void updateButtonToState(PlanetUnityButtonState newState)
    {
        TextMesh textMeshComponent = gameObject.GetComponent(typeof(TextMesh)) as TextMesh;

        state = newState;

        if(state == PlanetUnityButtonState.Normal)
        {
            textMeshComponent.color = new Color (textColor.r, textColor.g, textColor.b, textColor.a);
        }
        if(state == PlanetUnityButtonState.Highlighted)
        {
            textMeshComponent.color = new Color (touchColor.r, touchColor.g, touchColor.b, touchColor.a);
        }
    }
예제 #4
0
 public void OnMouseEnter()
 {
     if (trackingMouse) {
         btnState = PlanetUnityButtonState.Highlighted;
         entity.updateButtonToState (btnState);
     }
 }
예제 #5
0
 public void OnMouseCancelled()
 {
     trackingMouse = false;
     btnState = PlanetUnityButtonState.Normal;
     entity.updateButtonToState (PlanetUnityButtonState.Normal);
 }
예제 #6
0
    public void updateButtonToState(PlanetUnityButtonState newState)
    {
        if (state == newState) {
            return;
        }

        state = newState;

        Texture tex = null;
        if(state == PlanetUnityButtonState.Normal)
        {
            tex = PlanetUnityResourceCache.GetTexture (normalResourcePath);
            gameObject.renderer.material.mainTexture = tex;

            if (touchColorExists) {
                if (savedColor != null) {
                    gameObject.renderer.material.color = savedColor;
                } else if (colorExists) {
                    gameObject.renderer.material.color = new Color (color.r, color.g, color.b, color.a);
                } else {
                    gameObject.renderer.material.color = Color.white;
                }
            } else {
                gameObject.renderer.material.color = Color.white;
            }
        }
        if(state == PlanetUnityButtonState.Highlighted)
        {
            if (highlightedResourcePathExists) {
                tex = PlanetUnityResourceCache.GetTexture (highlightedResourcePath);
                gameObject.renderer.material.mainTexture = tex;
            }
            if(touchColorExists) {
                savedColor = gameObject.renderer.material.color;
                gameObject.renderer.material.color = new Color(touchColor.r, touchColor.g, touchColor.b, touchColor.a);
            }
        }
    }
예제 #7
0
    public void OnMouseUp()
    {
        bool shouldCallTouchUp = (trackingMouse && btnState == PlanetUnityButtonState.Highlighted);

        trackingMouse = false;
        btnState = PlanetUnityButtonState.Normal;
        entity.updateButtonToState (PlanetUnityButtonState.Normal);

        float diffInSeconds = (float)((DateTime.Now - mouseDownTime).TotalSeconds);

        if (shouldCallTouchUp) {
            entity.performTouchUp ((diffInSeconds > 1.0f));
        }

        NotificationCenter.postNotification (null, PlanetUnity.BUTTONTOUCHUP, NotificationCenter.Args("sender", this));
    }
예제 #8
0
 public void OnMouseExit()
 {
     if (trackingMouse) {
         btnState = PlanetUnityButtonState.Normal;
         entity.updateButtonToState (PlanetUnityButtonState.Normal);
     }
 }