2016年11月27日日曜日

Unityのコルーチンについて

コルーチンとは? 自分は複数の処理をほぼ同時に処理してくれます。
ただスレッドはメインスレッドしか動いていないらしいため、疑似的な非同期になるでしょうか。
C#のasync/awaitは複数スレッドを使用しているみたいです。
以下のコードは1秒後にTest1のログを表示するプログラムです。

void Update() {
    // aキーを押したとき
    if (Input.GetKeyDown("a")) {
        // Test()のコルーチンを実行する
        StartCoroutine(Test1());
    }
}

 IEnumerator Test1()
    {
    // 1秒待機する
        yield return new WaitForSeconds(1.0f);

        Debug.Log("Test1");
    }
自分はアニメーションが終了する時まで待機するために使っていたりします。 便利です。


アプリ開発はもう少しできてきたら動画とろうと思います。
steamがセール中なので何か買わなくては


2016年11月20日日曜日

Unityでjson読み込み

Unityでxmlのデータを読み込もうと思ったが、面倒だったのでjsonを読み込むことにしました。
SimpleJSONを使いました。
今回やったことは適当(デザイン性皆無)なUIメニュー画面を作りました。
メニューを選択したときキャラがアニメーションするようにしました。

以下、Jsonデータ

{
    "attack_data":
    [
          {
              "Text":"こうげき",
              "Animation":"none"
          },
          {
              "Text":"斬撃",
              "Animation":"Swinging"
          },
          {
              "Text":"突き",
              "Animation":"Stabbing"
          }
    ],
    "magic_data":
    [
        {
          "Text":   "まほう",
          "Animation":"none"
        },
        {
          "Text":   "ファイアー",
          "Animation":"Magic"
        }
    ],
    "defense_data": 
    [
      {
        "Text":   "ぼうぎょ",
        "Animation":"Guard"
      }
    ],
    "item_data": 
    [
      {
          "Text":   "アイテム",
          "Animation":"none"
      },
      {
          "Text":   "回復薬",
          "Animation":"Item"
      }
    ]
}
 
 
画質悪すぎて文字が見えないw

うーんあまり進んでる感がない。
11月中に戦闘の基盤となる部分を作れるかな?

 

2016年11月12日土曜日

unityでanimatorをつかってみた



左右キーでモーションが変わります。
初めて動画とりましたが画質悪いですね。。。

以下キャラコントロールのソースコード

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

/// キャラコントロール
public class CharaCtrl : MonoBehaviour {

    /// モーションインデックス
   enum MotionIdx
   {
        Walk = 0,
        Run,
        Damage,
        Stabbing,
        ReadyPhysical,
        ReadyMagic,
        Guard,
        Evade,
        Swinging,
        Magic,
        Skill,
        Throw,
        Victory,
        Sick,
        Item,
        Escape,
        Charge,
        Down,
        Jump,
        EndMOtion,
    };


    /// モーションリスト
    string[] MotionList = 
    {
        "Walk",
        "Run",
        "Damage",
        "Stabbing",
        "ReadyPhysical",
        "ReadyMagic",
        "Guard",
        "Evade",
        "Swinging",
        "Magic",
        "Skill",
        "Throw",
        "Victory",
        "Sick",
        "Item",
        "Escape",
        "Charge",
        "Down",
        "Jump",
        "EndMOtion",
    };

    /// アニメ
    [SerializeField]
    private Animator anim;

    /// テキスト
    [SerializeField]
    private Text text;

    /// モーション番号
    private int motion;


 // Use this for initialization
 void Start ()
    {
        motion = 0;
    }
 
 // Update is called once per frame
 void Update ()
    {
        if (Input.GetKeyDown(KeyCode.LeftArrow))
        {
            text.text = MotionList[motion];
            anim.Play(MotionList[motion]);
            motion--;
            if (motion < 0)
            {
                motion = (int)MotionIdx.Jump;
            }
        }
        if (Input.GetKeyDown(KeyCode.RightArrow))
        {
            text.text = MotionList[motion];
            anim.Play(MotionList[motion]);
            motion++;
            if (motion > (int)MotionIdx.Jump)
            {
                motion = 0;
            }
        }
    }
}

以下適当に作ったAnimator
 Animatorってどうやって作ったら効率がいいのか分かんないですね。
 

素材はぴぽやさんから使わせてもらいました。
感謝感激雨あられ
ぴぽや http://piposozai.blog76.fc2.com/

2016年11月6日日曜日

最近の出来事

書くことないので 適当に書いてく

最近やってるゲームについて

・シャドウバース 

ヴァンパイアで
 A3まで行きました。
 数こなさないと上がらないから面倒だ。

 

・攻殻機動隊 S.A.C (オープンベータ)

 うーん普通のFPSゲームであった。
 すぐ飽きてしまうと思う。
 PS2の様な感じのがやりたかったですね。

最近ゲームでハマる事がなくなってきたので
VRに手を出すかもしれない。


アプリ開発について

Unityを使ってアプリを作っていこうと思う。
ただ忙しいのと寒いのでやる気があまり出ない。

・どういったアプリを作るか

Unityを使うが2Dにしようと思う。
規模のでかいゲームを作らないようにしたい
ひとつづつステージを進んでいくような。

・目標

目安を決めて3月までには完成させたい。

11月内に基盤となる部分を作る。
そろそろ本気出す。
仕事が面倒だああああああああ


【早い者勝ち!】 あなたのお名前、残ってる?

シャドウバースにPC版が誕生