使用ITweenX 來簡化iTween外掛程式的函數調用,itweenxitween

來源:互聯網
上載者:User

使用ITweenX 來簡化iTween外掛程式的函數調用,itweenxitween

iTween外掛程式是u3d中很火的動畫外掛程式。

但是幾乎所有函數的參數都是字串,函數名也要以字串的方式傳入,這就不好了,我們沒有必要去記EaseType和其他的參數串。


對於  設計模式的要求是  多組合,少繼承。多擴充,少修改。

由於這個外掛程式本身的功能沒有任何問題。所以我們沒有必要做任何徒勞的重構。就是擴充就玩了唄。


使用:

把指令碼放進Standard Assets/Scripts 等等檔案夾中即可; 這也很容易被javascript 或 Boo語言使用. 如果你聲明一個 public 的EaseType類型變數, 你能夠很容易的設定easetype 在面板 inspector. 上。


例子,隨便調用一個方法:

public class MyClass: MonoBehaviour{public EaseType easeType; void Start(){iTween.ValueTo( gameObject, iTween.Hash( iTweenX.from, 0f, iTweenX.to, 1f, iTweenX.time, 1f,                                                 iTweenX.onUpdate, "OnUpdateValue",                                                 iTweenX.onStart, "OnStart",                                                 iTweenX.onComplete, "OnComplete",                                                 iTweenX.easeType, iTweenX.Ease(easeType),                                                 iTweenX.ignoreTimescale, true ) );}void OnUpdateValue(float value){ print( "OnUpdateValue : " + value.ToString() ); }void OnStart(){ print( "OnStart" ); }void OnComplete(){ print( "OnComplete" ); }}

iTweenX.cs 

public enum EaseType{EaseInQuad = 0,EaseOutQuad,    EaseInOutQuad,  EaseInCubic,    EaseOutCubic,   EaseInOutCubic, EaseInQuart,    EaseOutQuart,   EaseInOutQuart, EaseInQuint,    EaseOutQuint,   EaseInOutQuint, EaseInSine,     EaseOutSine,    EaseInOutSine,  EaseInExpo,     EaseOutExpo,    EaseInOutExpo,  EaseInCirc,     EaseOutCirc,    EaseInOutCirc,  Linear,         Spring,         EaseInBounce,   EaseOutBounce,  EaseInOutBounce,EaseInBack,     EaseOutBack,    EaseInOutBack,  EaseInElastic,  EaseOutElastic, EaseInOutElastic} public static class iTweenX{public readonly static string[] easeTypes = new string[32]{"easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","linear","spring","easeInBounce","easeOutBounce","easeInOutBounce","easeInBack","easeOutBack","easeInOutBack","easeInElastic","easeOutElastic","easeInOutElastic"}; public const string time ="time";public const string speed ="speed";public const string from ="from";public const string to ="to";public const string onStart =          "onstart";public const string onStartTarget ="onstarttarget";public const string onStartParams ="onstartparams";public const string onUpdate ="onupdate";public const string onUpdateTarget ="onupdatetarget";public const string onUpdateParams ="onupdateparams";public const string onComplete ="oncomplete";public const string onCompleteTarget ="oncompletetarget";public const string onCompleteParams ="oncompleteparams";public const string ignoreTimescale ="ignoretimescale";public const string easeType ="easetype"; public static string Ease( EaseType type ){return easeTypes[ (int)type ];}}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.