コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】Tween ライブラリの GC Alloc を知る

概要

  • 下記の条件下における GC Alloc を調査
    • 0 から 1 の値を 1 秒間繰り返し変化させる処理を登録
    • 毎フレーム呼び出されるコールバック関数を登録

iTween

 

using UnityEngine;

public class ExampleClass : MonoBehaviour
{
    private float mValue;
    
    void Awake()
    {
        iTween.ValueTo( gameObject, iTween.Hash(
            "from"       , 0, 
            "to"         , 1, 
            "time"       , 1, 
            "looptype"   , iTween.LoopType.loop, 
            "onupdate"   , "OnUpdate"
        ) );
    }

    void OnUpdate( float value )
    {
        mValue = value;
    }
}

f:id:baba_s:20150622142500p:plain

関数 GC Alloc
iTween.Update() 128 B

HOTween

 

using Holoville.HOTween;
using UnityEngine;

public class ExampleClass : MonoBehaviour
{
    public float mValue;

    void Awake()
    {
        HOTween.To( this, 1, 
            new TweenParms()
            .Prop( "mValue", 1 )
            .Loops( -1 )
            .OnUpdate( OnUpdate )
        );
    }

    void OnUpdate()
    {
    }
}

f:id:baba_s:20150622142512p:plain

関数 GC Alloc
HOTween.Update() 116 B
HOTween.FixedUpdate() 96 B
HOTween.TimeScaleIndependentUpdate() 113 B
HOTween.LateUpdate() 96 B

DOTween

 

using DG.Tweening;
using UnityEngine;

public class ExampleClass : MonoBehaviour
{
    private float mValue;

    void Awake()
    {
        DOTween
            .To( val => mValue = val, 0, 1, 1 )
            .SetLoops( -1 )
            .OnUpdate( OnUpdate );
    }

    void OnUpdate()
    {
    }
}

f:id:baba_s:20150622142521p:plain

関数 GC Alloc
DOTweenComponent.FixedUpdate() 0 B

関連記事