Asset」タグアーカイブ

iTweenで使えるEaseTypeの一覧

iTweenで使えるEaseTypeはRobert Penner’s open source easing equationsを元にしているそうです。

使えるTypeの一覧

easeInQuadeaseOutQuadeaseInOutQuad
easeInCubiceaseOutCubiceaseInOutCubic
easeInQuarteaseOutQuarteaseInOutQuart
easeInQuinteaseOutQuinteaseInOutQuint
easeInSineeaseOutSineeaseInOutSine
easeInExpoeaseOutExpoeaseInOutExpo
easeInCirceaseOutCirceaseInOutCirc
easeInBounceeaseOutBounceeaseInOutBounce
easeInBackeaseOutBackeaseInOutBack
easeInElasticeaseOutElasticeaseInOutElastic
linearspring

どんな感じかグラフで見たい場合は次のリンクが参考になるかなと思います。

Easing Functions Cheat Sheet
https://easings.net/

リンク

iTween for Unity by Bob Berkebile (pixelplacement)
http://www.pixelplacement.com/itween/documentation.php

Robert Penner’s Easing Functions
http://robertpenner.com/easing/

UnityでScreenshotMovieを作成するスクリプト

Unityで作ったゲームのScreenshotMovieを作成できるスクリプト

ScreenshotMovie – Unify Community Wiki
http://wiki.unity3d.com/index.php/ScreenShotMovie

作成されるファイルはPNG形式の連番画像ファイルになるので、FFmpegや他の動画編集ソフト等で動画に変換してください。

FFmpegで動画ファイルに変換するコマンド例

$ ffmpeg -an -i screenshot.mp4 "shot %04.png"

リンク

ScreenshotMovie – Unify Community Wiki
http://wiki.unity3d.com/index.php/ScreenShotMovie

FFmpeg
http://ffmpeg.org/

iTweenでSystem.Actionを使う方法

iTweenはとても便利なAssetですが、onupdateoncompletedelegateが使えないという点が少し不便だったので調べてみたところ簡単に変更できるようです。

//throw an error if a string wasn't passed for callback:
if (tweenArguments[callbackType].GetType() == typeof(System.String)) {
  target.SendMessage((string)tweenArguments[callbackType],(object)tweenArguments[callbackType+"params"],SendMessageOptions.DontRequireReceiver);
}else{
  Debug.LogError("iTween Error: Callback method references must be passed as a String!");
  Destroy (this);
}

という部分を

//throw an error if a string wasn't passed for callback:
if (tweenArguments[callbackType] is Action<object>) {
  ((Action<object>)tweenArguments[callbackType]).Invoke((object)tweenArguments[callbackType + "params"]);
}else{
  Debug.LogError("iTween Error: Callback method references must be passed as a String!");
  Destroy (this);
}

と書き換えます。

すると、次のような感じでonupdateが使えるようになります。

Hashtable ht = new Hashtable ();
ht.Add ("from", 0.0f);
ht.Add ("to", 1.0f);
ht.Add ("onupdate", (System.Action<object>)(v => {
  Debug.Log("v = " + (float)v);
}));
iTween.MoveTo(gameObject, ht);

便利です。

リンク

Specifying a delegate for the value of onupdate in iTween. – Unity Answers
https://answers.unity.com/questions/490719/specifying-a-delegate-for-the-value-of-onupdate-in.html