Posts Tagged “UI”

DOTweenのSequence の紹介

By |

DOTweenのSequence の紹介

DOTweenは、非常にスムーズなアニメーションを素早く簡単に作成できるようにするための強力で無料の単一のアニメーションエンジンです。今回はウェイポイントを使ったアニメーションを制御する際に便利な機能について紹介します。 DOTweenにはパスを作成するために、オブジェクトまたはUI要素を特定のポイントまたはwaypointのリストに移動するための便利な機能が多数含まれています。最も便利な機能の一つはSequenceです。オブジェクトをパスに沿って移動させるだけでなく、複数のパスを次々に、またはパス内部のwaypointにもステッチすることができます。 (画像引用元:http://dotween.demigiant.com/index.php) DOTweenを使用するには、まず適切なNamespaceを追加し、DOTweenを初期化する必要があります。 using DG.Tweening; private void Start() { DOTween.Init(); }   その後、Sequenceを作成して初期化する必要があります: using DG.Tweening; private Sequence mySequence; private void Start() { DOTween.Init(); mySequence = DOTween.Sequence(); }   Sequenceが初期化すると、パラメータをAppendキーワードで与えることでTweenの挙動を簡単に追加できます。たとえば、DOMove()を使用してオブジェクトを移動したり、DOPath()を使用してオブジェクトをパスに沿って移動したりできます: mySequence.Append(transform.DOPath(Vector3[] waypoints, float duration, PathType pathType = Linear, PathMode pathMode = Full3D, int resolution = 10, Color gizmoColor = null);   Tweensをいくつでも追加可能で、素晴らしいアニメーションを作ることを可能できます。 併せて以下のような多くの有用なパラメータを制御することができます: SetLookAt()関数を使用して、Tween中に前方のオブジェクトが向いている方向を制御。 SetEase()関数をつかって、TweenをEaseのバリエーションを制御。…

(Unity3D)ダイナミックボタンアクション

By |

(Unity3D)ダイナミックボタンアクション

あるゲームのUIを作っている間にボタンに関する問題に遭遇しました。選択されたエンティティによって、表示されているボタンが変わるようにしたいと思いました。 もちろん一つずつのエンティティのGameObjectを準備して場合によってSetActive()trueかfalseにしてもいいですが、スケーラビリティは?エンティティを追加しようとする毎に新しいGameObjectを準備しますか?そんな面倒なことは勘弁してほしいですよね。 ということでスケーラビリティのため、エンティティを選択する時にボタンが編集され、ちょっとしたアルゴリズムを書きました。  こういうシステムが入っているUIを作る人がいて参考になればと思い、分かりやすいバージョンを準備して下記にそのケースを紹介します。  想定ケース:  1.エンティティによる、ボタンの数が異なる場合でもOK。  2.ボタンの見た目を編集可能にする。  3.ボタンのアクションがstringの引数を受け取れる。  4.簡単にするため、ボタンの最大数は10にします。  先ずはボタンの情報をまとめるクラス“ActivityButton“をつくります。  public class ActionButton { public UnityAction<string> theAction; public string argument; public Sprite sprite; public ActionButton(UnityAction<string> act, Sprite sprite, string arg=””){ theAction = act; argument=arg; this.sprite = sprite; } } UIマネージャーにはButton、Image、GameObjectの配列を必要です。パブリックなGameObjectの配列を作ってシーンからボタンをドラッグして、Start()でButtonとImageの配列を作りました。  public class MyEpicUIManager : MonoBehaviour { Button[] actionBtns; Image[] actionImgs; public GameObject[] actionBtnObjs; void Start…

Go Top