Example #1
0
 // Update is called once per frame
 void Update()
 {
     if (Input.GetButtonDown("Fire1"))
     {
         // 左クリックで次の区間に移る
         Debug.Log("PLAY " + labels[index]);
         StartEndFrame se = labelToFrame[labels[index]];
         sprite.SetStartEndFrame(se.start, se.end);
         sprite.AnimFrame = se.start;
         index            = (index + 1) % labels.Length;
     }
 }
Example #2
0
    // Use this for initialization
    void Start()
    {
        sprite = GetComponent <SsSprite>();

        // 0番=ルートパーツを参照する
        SsPart part = sprite.GetPart(0);

        // ルートパーツが持つ全ユーザーデータキーの文字列とフレーム位置のペアで辞書を作る
        SsPartRes res      = part._res;
        int       endFrame = res.FrameNum - 1;

        // 末尾キーから先頭キーに向かって遡る
        for (int i = res.UserKeys.Count - 1; i >= 0; --i)
        {
            SsUserDataKeyFrame userDataKey = (SsUserDataKeyFrame)res.GetKey(SsKeyAttr.User, i);

            // 文字列が格納されていない場合は無視する
            if (!userDataKey.Value.IsString)
            {
                continue;
            }

            var se = new StartEndFrame();

            // 1つ右のキーフレーム、または全フレーム数-1を終了フレームとする
            se.end = endFrame;

            // "文字列"領域に書かれた文字列をキーにして開始・終了位置フレームを登録する
            se.start = userDataKey.Time;
            labelToFrame[userDataKey.Value.String] = se;

            // このキーフレームの位置-1が1つ左の区間の終了フレームになる
            endFrame = userDataKey.Time - 1;
        }

        // 登録したラベルと区間を列挙する
        Debug.Log("User data keys...");
        foreach (var e in labelToFrame)
        {
            Debug.Log("[" + e.Key + "] start:" + e.Value.start + " end:" + e.Value.end);
        }
    }
Example #3
0
	// Use this for initialization
	void Start ()
	{
		sprite = GetComponent<SsSprite>();

		// 0番=ルートパーツを参照する
		SsPart part = sprite.GetPart(0);
		
		// ルートパーツが持つ全ユーザーデータキーの文字列とフレーム位置のペアで辞書を作る
		SsPartRes res = part._res;
		int endFrame = res.FrameNum - 1;
		
		// 末尾キーから先頭キーに向かって遡る
		for (int i = res.UserKeys.Count - 1; i >= 0; --i)
		{
			SsUserDataKeyFrame userDataKey = (SsUserDataKeyFrame)res.GetKey(SsKeyAttr.User, i);
			
			// 文字列が格納されていない場合は無視する
			if (!userDataKey.Value.IsString) continue;
			
			var se = new StartEndFrame();
				
			// 1つ右のキーフレーム、または全フレーム数-1を終了フレームとする
			se.end = endFrame;

			// "文字列"領域に書かれた文字列をキーにして開始・終了位置フレームを登録する
			se.start = userDataKey.Time;
			labelToFrame[userDataKey.Value.String] = se;

			// このキーフレームの位置-1が1つ左の区間の終了フレームになる
			endFrame = userDataKey.Time - 1;
		}
		
		// 登録したラベルと区間を列挙する
		Debug.Log("User data keys...");
		foreach (var e in labelToFrame)
		{
			Debug.Log("[" + e.Key + "] start:" + e.Value.start + " end:" + e.Value.end);
		}
	}