protected void PanelScaleAnimation(GameObject obj, AnimationBeingTargetField target, float alpha)
    {
        Vector3 res = target.GetAnimationVectorStruct().initial *(1 - alpha) + target.GetAnimationVectorStruct().target *alpha;

        //Debug.Log(res);
        obj.transform.localScale = res;
    }
示例#2
0
    /// <summary>
    /// Animate the specified property value between 0 and 1
    /// </summary>
    /// <param name="objref"></param>
    /// <param name="material"></param>
    /// <param name="property"></param>
    /// <param name="animType"></param>
    /// <param name="duration"></param>
    /// <param name="direction"></param>
    /// <param name="loop"></param>
    /// <returns></returns>
    public AnimationBeing CreateMaterialAnimation(GameObject objRef, Material material, string property, AnimationType animType, float duration, int direction = 1, bool loop = false)
    {
        AnimationBeingTargetField t = new AnimationBeingTargetField();

        t.SetMaterial(material);

        System.Action <GameObject, AnimationBeingTargetField, float> func = null;
        func = (GameObject obj, AnimationBeingTargetField field, float alpha) =>
        {
            //Vector3 res = t.GetAnimationVectorStruct().initial * (1 - alpha) + t.GetAnimationVectorStruct().target * alpha;
            material.SetFloat(property, alpha);
            //Debug.Log(res);
        };

        //animation being creation
        AnimationBeing being = new AnimationBeing(objRef, func, duration, direction);

        being.SetLoop(loop);
        being.CreateAnimationBeingTargetAndInitializeDefaultValue(t.getMaterial());

        switch (animType)
        {
        case AnimationType.Parallel:
            Debug.Log("Created");
            animationBeingsParallel.Add(being);
            break;

        case AnimationType.Serial:
            animationBeingsSequence.Add(being);
            break;
        }
        return(being);
    }
示例#3
0
    public AnimationBeing CreateScaleAnim(GameObject objRef, Vector3 initial, Vector3 target, AnimationType animType, float duration, int direction, bool loop = false)
    {
        AnimationBeingTargetField t = new AnimationBeingTargetField();

        t.SetAnimationVectorStruct(new AnimationVectorStuct(initial, target));

        System.Action <GameObject, AnimationBeingTargetField, float> func = null;
        func = (GameObject obj, AnimationBeingTargetField field, float alpha) =>
        {
            Vector3 res = field.GetAnimationVectorStruct().initial *(1 - alpha) + field.GetAnimationVectorStruct().target *alpha;
            //Debug.Log(res);
            obj.transform.localScale = res;
        };

        //animation being creation
        AnimationBeing being = new AnimationBeing(objRef, func, duration, direction);

        being.SetLoop(loop);
        being.CreateAnimationBeingTargetAndInitializeDefaultValue(t.GetAnimationVectorStruct());

        switch (animType)
        {
        case AnimationType.Parallel:
            Debug.Log("Created");
            animationBeingsParallel.Add(being);
            break;

        case AnimationType.Serial:
            animationBeingsSequence.Add(being);
            break;
        }
        return(being);
    }
示例#4
0
    void ScaleAnim(GameObject g, AnimationBeingTargetField field, float alpha)
    {
        Vector3 res = field.GetAnimationVectorStruct().initial *(1 - alpha) + field.GetAnimationVectorStruct().target *alpha;

        //Debug.Log(res);
        g.transform.localScale = res;
    }
    protected void ObjectFadeAnimation(GameObject obj, AnimationBeingTargetField target, float alpha)
    {
        //Debug.Log("Alpha: " + alpha);
        float a     = target.GetColor().a *alpha;
        Color c     = obj.GetComponent <Image>().color;
        Image image = obj.GetComponent <Image>();

        obj.GetComponent <Image>().color = new Color(c.r, c.g, c.b, a);
    }
示例#6
0
    public void CreateAnimationBeingTargetAndInitializeDefaultValue <T>(T targetProperty)
    {
        targetField = new AnimationBeingTargetField();
        if (targetProperty is Material)
        {
            Material target = (Material)Convert.ChangeType(targetProperty, typeof(Material));
        }
        if (targetProperty is Vector3)
        {
            Vector3 target = (Vector3)Convert.ChangeType(targetProperty, typeof(Vector3));

            targetField.SetVector3(target);
            return;
        }
        if (targetProperty is Color)
        {
            Color target = (Color)Convert.ChangeType(targetProperty, typeof(Color));

            targetField.SetColor(target);
            return;
        }
        if (targetProperty is Color32)
        {
            Color32 target = (Color32)Convert.ChangeType(targetProperty, typeof(Color32));

            targetField.SetColor(target);
            return;
        }
        if (targetProperty is AnimationVectorStuct)
        {
            AnimationVectorStuct target = (AnimationVectorStuct)Convert.ChangeType(targetProperty, typeof(AnimationVectorStuct));

            Debug.Log("Taaaaaa: " + target.initial + " " + target.target);

            targetField.SetAnimationVectorStruct(target);
            return;
        }
    }
示例#7
0
    public AnimationBeing CreateRectTransformLocalPositionAnimation(RectTransform rectTransform,
                                                                    Vector3 initial, Vector3 target, AnimationType animType, float duration, int direction = 1, bool loop = false)
    {
        AnimationBeingTargetField t = new AnimationBeingTargetField();

        t.SetAnimationVectorStruct(new AnimationVectorStuct(initial, target));

        System.Action <GameObject, AnimationBeingTargetField, float> func = null;
        func = (GameObject obj, AnimationBeingTargetField field, float alpha) =>
        {
            //Vector3 res = t.GetAnimationVectorStruct().initial * (1 - alpha) + t.GetAnimationVectorStruct().target * alpha;
            obj.GetComponent <RectTransform>().localPosition = field.GetAnimationVectorStruct().initial *(1 - alpha) +
                                                               field.GetAnimationVectorStruct().target *alpha;

            //material.SetFloat(property, alpha);
        };

        //animation being creation
        AnimationBeing being = new AnimationBeing(rectTransform.gameObject, func, duration, direction);

        being.SetLoop(loop);
        being.CreateAnimationBeingTargetAndInitializeDefaultValue(t.GetAnimationVectorStruct());

        switch (animType)
        {
        case AnimationType.Parallel:
            Debug.Log("Created");
            animationBeingsParallel.Add(being);
            break;

        case AnimationType.Serial:
            animationBeingsSequence.Add(being);
            break;
        }
        return(being);
    }