Ejemplo n.º 1
0
    void LateUpdate()
    {
        if (mLabel == null)
        {
            mLabel = GetComponent <UILabel>();
            mText  = mLabel.font.WrapText(mLabel.text, mLabel.lineWidth / mLabel.cachedTransform.localScale.x, true, true, mLabel.FontSize);
        }

        if (mOffset < mText.Length)
        {
            if (mNextChar <= Time.time)
            {
                charsPerSecond = Mathf.Max(1, charsPerSecond);

                // Periods and end-of-line characters should pause for a longer time.
                float delay = 1f / charsPerSecond;
                char  c     = mText[mOffset];
                if (c == '.' || c == '\n' || c == '!' || c == '?')
                {
                    delay *= 4f;
                }

                mNextChar   = Time.time + delay;
                mLabel.text = mText.Substring(0, ++mOffset);
            }
        }
        else
        {
            if ((EventReceiver != null) && (!string.IsNullOrEmpty(CallWhenFinished)))
            {
                GameObject go = EventReceiver;
                if (go == null)
                {
                    go = gameObject;
                }
                LuaMessage msg = new LuaMessage(gameObject, this);
                go.SendMessage(CallWhenFinished, msg, SendMessageOptions.DontRequireReceiver);
            }

            Destroy(this);
        }
    }
Ejemplo n.º 2
0
    public void Done()
    {
        if (mLabel != null)
        {
            mLabel.text = mText;

            if ((EventReceiver != null) && (!string.IsNullOrEmpty(CallWhenFinished)))
            {
                GameObject go = EventReceiver;
                if (go == null)
                {
                    go = gameObject;
                }
                LuaMessage msg = new LuaMessage(gameObject, this);
                go.SendMessage(CallWhenFinished, msg, SendMessageOptions.DontRequireReceiver);
            }

            Destroy(this);
        }
    }
Ejemplo n.º 3
0
 void OnEventWithMessage(LuaMessage message)
 {
     lua_behaviour_.CallFunction(message.sender,
                                 (string.IsNullOrEmpty(message.functionName) ? "_Event" : "_" + message.functionName), message.parameter);
 }
Ejemplo n.º 4
0
    /// <summary>
    /// Update the tweening factor and call the virtual update function.
    /// </summary>

    void Update()
    {
        float delta = UpdateRealTimeDelta();

        //delay play tween animation
        if (delayTime > 0)
        {
            delayTime -= delta;
            return;
        }
        if (mWait)
        {
            waitTime -= delta;
            if (waitTime <= 0)
            {
                mFactor = Mathf.Clamp01(mFactor);

                if (string.IsNullOrEmpty(callWhenFinished))
                {
                    enabled = false;
                }
                else
                {
                    // Notify the event listener target
                    GameObject go = eventReceiver;
                    if (go == null)
                    {
                        go = gameObject;
                    }
                    LuaMessage msg = new LuaMessage(isSenderToMessage?gameObject:null, this, "TweenEnd");
                    go.SendMessage(callWhenFinished, msg, SendMessageOptions.DontRequireReceiver);

                    // Disable this script unless the SendMessage function above changed something
                    if (mFactor == 1f && mAmountPerDelta > 0f || mFactor == 0f && mAmountPerDelta < 0f)
                    {
                        enabled = false;
                    }
                }
            }
            return;
        }

        // Advance the sampling factor
        if (method == Method.Acceler)
        {
            mFactor += amountPerDelta * delta * 1.0f / (1.0f - mFactor);
        }
        else if (method == Method.Decelerate)
        {
            mFactor += amountPerDelta * delta * 1.0f / (1.0f + mFactor * 0.5f);
        }
        else
        {
            mFactor += amountPerDelta * delta;
        }

        // Loop style simply resets the play factor after it exceeds 1.
        if (style == Style.Loop)
        {
            if (mFactor > 1f)
            {
                mFactor -= Mathf.Floor(mFactor);
            }
        }
        else if (style == Style.PingPong)
        {
            // Ping-pong style reverses the direction
            if (mFactor > 1f)
            {
                mFactor         = 1f - (mFactor - Mathf.Floor(mFactor));
                mAmountPerDelta = -mAmountPerDelta;
            }
//			Modifyed by dc.......
//			else if (mFactor < 0f)
//			{
//				mFactor = -mFactor;
//				mFactor -= Mathf.Floor(mFactor);
//				mAmountPerDelta = -mAmountPerDelta;
//			}
        }
        else if (style == Style.PingPongLoop)
        {
            // Ping-pong style reverses the direction
            if (mFactor > 1f)
            {
                mFactor         = 1f - (mFactor - Mathf.Floor(mFactor));
                mAmountPerDelta = -mAmountPerDelta;
            }
            else if (mFactor < 0f)
            {
                mFactor         = -mFactor;
                mFactor        -= Mathf.Floor(mFactor);
                mAmountPerDelta = -mAmountPerDelta;
            }
        }

        // Calculate the sampling value
        float val = Mathf.Clamp01(mFactor);

        if (method == Method.EaseIn)
        {
            val = 1f - Mathf.Sin(0.5f * Mathf.PI * (1f - val));
        }
        else if (method == Method.EaseOut)
        {
            val = Mathf.Sin(0.5f * Mathf.PI * val);
        }
        else if (method == Method.EaseInOut)
        {
            const float pi2 = Mathf.PI * 2f;
            val = val - Mathf.Sin(val * pi2) / pi2;
        }

        if (chidrenWidgets != null && chidrenWidgets.Length > 0)
        {
            for (int i = 0; i < chidrenWidgets.Length; i++)
            {
                chidrenWidgets[i].MarkAsChanged();
            }
        }
        // Call the virtual update
        OnUpdate(val);

        // If the factor goes out of range and this is a one-time tweening operation, disable the script
        if ((style == Style.Once || style == Style.PingPong) && (mFactor > 1f || mFactor < 0f))
        {
            if (waitTime > 0)
            {
                mWait = true;

                if (string.IsNullOrEmpty(callWhenWait) == false)
                {
                    GameObject go = eventReceiver;
                    if (go == null)
                    {
                        go = gameObject;
                    }
                    LuaMessage msg = new LuaMessage(isSenderToMessage ? gameObject : null, this, "TweenWait");
                    go.SendMessage(callWhenWait, msg, SendMessageOptions.DontRequireReceiver);
                }
            }
            else
            {
                mFactor = Mathf.Clamp01(mFactor);

                if (string.IsNullOrEmpty(callWhenFinished))
                {
                    enabled = false;
                }
                else
                {
                    // Notify the event listener target
                    GameObject go = eventReceiver;
                    if (go == null)
                    {
                        go = gameObject;
                    }
                    LuaMessage msg = new LuaMessage(isSenderToMessage ? gameObject : null, this, "TweenEnd");
                    go.SendMessage(callWhenFinished, msg, SendMessageOptions.DontRequireReceiver);

                    // Disable this script unless the SendMessage function above changed something
                    if (mFactor == 1f && mAmountPerDelta > 0f || mFactor == 0f && mAmountPerDelta < 0f)
                    {
                        enabled = false;
                    }
                }
                if (mDestroyAfterTween)
                {
                    GameObject.Destroy(gameObject);
                }
            }
        }
    }
Ejemplo n.º 5
0
 void MoveEnd(LuaMessage msg)
 {
     Debug.Log("Move End");
 }