前提・実現したいこと
Vroidのアバターに、unityちゃんのモーションをつけています。
unity上の「拒否する」というボタンを押すと、LOSE00のモーションが一度再生される、「承認する」というボタンを押すと、WIN00のモーションが一度再生される、という感じにしたいです。
現在、Int型として、ConditionsにおいてLOSE00を「1」、WIN00を「2」に設定しています。
ちなみに、Oculus Lift sと連動しています。
おそらく、モーションとスクリプトが繋げられていないと思うので、スクリプトを教えていただきたいです。
unity歴が浅いので、丁寧に教えてくれるとありがたいです。
宜しくお願い致します。
発生している問題・エラーメッセージ
エラーメッセージ
Null Reference Exception : Object reference not set to an instance of an object
該当のソースコード
using System; using System.Text; using System.IO; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class Manager_A : Root { public Text text_point; public Text point_you; public Text point_opponent; public Text text_intro; public Text waitmsg; public Text distmsg; public Button btn_yes; public Button btn_no; public Transform btn_next; private int count; private int[,] value = new int[7,2] { {900,100}, {800,200}, {700,300}, {500,500}, {300,700}, {200,800}, {100,900} }; private int judge; private Strategy stg = new Strategy(); private Func<int, int, int> gamestg; //private int Root.stgnumber; private int points; private int valuenum; private int[] waittime = new int[3]{5,10,15}; private int wt; private StreamWriter sw; private Animator animator; // Start is called before the first frame update void Start() { count = 0; points = 0; valuenum = 3; Func<int, int, int> r = stg.Random; Func<int, int, int> p = stg.Pavlov; Func<int, int, int> s = stg.Selfish; Func<int, int, int> a = stg.Altruistic; Func<int, int,int>[] stgs = new Func<int, int, int>[4] { r, p, s, a }; //拒否確率はrootで指定。 //Root.stgnumber = UnityEngine.Random.Range(0,4); gamestg = stgs[Root.stgnumber]; //waitmsg.enabled = false; //btn_next.gameObject.SetActive(false); text_intro.enabled = false; btn_yes.GetComponent<Button>().enabled = true; btn_no.GetComponent<Button>().enabled = true; StartCoroutine(NextGame()); Animator animator = GetComponent<Animator>(); } // Update is called once per frame void Update() { } public void onClick_y() { points += value[valuenum,0]; judge = 0; ExportCsv(); distmsg.text = "成立です。おめでとうございます。\n報酬を受け取ることができます。"; Result(); { animator.SetInteger("Motion", 2); } } public void onClick_n() { judge = 1; ExportCsv(); distmsg.text = "不成立です。\n報酬を獲得することができませんでした。"; Result(); { animator.SetInteger("Motion", 1); }
試したこと
private Animator animator;
{
animator.SetInteger("Motion", 2);
}
の二つを勝手につけていますが、間違いがあれば、ご指摘おねがいします。
補足情報(FW/ツールのバージョンなど)
unityは2018,4,12f1のバージョンです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。