衝突判定系をまとめておきます
ここでは扱いやすいTrigger系のみにしておきます.Collider系はちょっと面倒なので,,,
衝突判定系をまとめておきます
ここでは扱いやすいTrigger系のみにしておきます.Collider系はちょっと面倒なので,,,
動的に変更できる
時間がないのでスクリプト全文
using UnityEngine; using System.Collections; //using UnityStandardAssets.Characters.ThirdPerson; public class targetchange : MonoBehaviour { public NavMeshAgent myObj; public Transform goalpos1; public Transform goalpos2; public Transform dummy;//AIThirdPersonを入れる Transform setPos; void Start(){ setPos = dummy; } void Update(){ myObj.SetDestination (setPos.position); } //スピードを0.5に変える public void chngSpeed(){ myObj.speed = 0.5f; } //ターゲットをgoalpos1にする public void target1(){ setPos = goalpos1; } //ターゲットをgoalpos2にする public void target2(){ setPos = goalpos2; } }
参考動画(ボタンで切り替えています)
UnityでのNCMBパスワードリセットの方法(全文)
時間ないので全文転載
using UnityEngine; using System.Collections; using NCMB; using UnityEngine.UI;//use unity gui using UnityEngine.SceneManagement; public class PassReset : MonoBehaviour { public Text emailfield; public Text statustxt; string meado; // Use this for initialization void Start () { } // Update is called once per frame void Update () { } public void doResetvoid(){ meado = emailfield.text; //NCMBUser user = new NCMBUser(); NCMBUser.RequestPasswordResetAsync(meado,(NCMBException e) => { if (e != null) { UnityEngine.Debug.Log ("ログインに失敗: " + e.ErrorMessage); statustxt.text = "リセットに失敗しました\nメールアドレスを確認してください"; } else { statustxt.text = "パスワードリセットに成功しました\nメールを受信しパスワードを再設定してください"; Invoke("toTop", 3f); } }); } //scne change public void toTop(){ SceneManager.LoadScene ("top"); } }
メールに仮パスワードとリセットページへのリンクが届くのでWEBでリセットするらしい
NCMBのuser.objectIdを取得して,他のところで使います
//JSON読み込み foreach (NCMBUser users in userList) { suDicAll.Add(users.UserName.ToString(), users.ObjectId.ToString());//Dictionaryに入れる //ここでJSON化し,PlayerPrefesに入れる myjson = Json.Serialize(suDicAll); }//foreachここまで PlayerPrefs.SetString("sulist", myjson); //JSON読み出し using MiniJSON;//use miniJSONが必要です string mytest = PlayerPrefs.GetString ("sulist"); var sudic = Json.Deserialize(mytest) as Dictionary<string, object>; foreach (KeyValuePair<string , object> pair in sudic) { Debug.Log (pair.Key + ":" + pair.Value); acl.SetReadAccess(pair.Value.ToString(), true);//加算用のテンポラリ変数 }
日付1日足して表示
DateTime dt; public Text niti1; public Text niti2; // Use this for initialization void Start () { //今日の日付を取得 dt = System.DateTime.Now; niti1.text = System.DateTime.Now.Month.ToString() + "月" + System.DateTime.Now.Day.ToString () + "日"; TimeSpan ts = new TimeSpan(1, 00, 00, 00); dt = dt + ts; niti2.text = System.DateTime.Now.Month.ToString() + "月" + System.DateTime.Now.Day.ToString () + "日"; }
プレファブ生成
//変数設定 public RectTransform nodePrefab; public RectTransform content; ////以下スクリプト本体 int mymax2 = 6;//forの回数 for(int p = 0; p < mymax2; p++){ var item = GameObject.Instantiate(nodePrefab) as RectTransform; //プレファブを生成してitemに入れる item.SetParent(content, false);//それをcontenteの子にする(上で変数宣言している) GameObject labelobj = item.transform.Find("Label").gameObject;//その中からLabelというオブジェクトを検索する var idtextcompo = labelobj.GetComponent<Text> ();//Labelのはいったオブジェクトの中のテキストコンポーネントを取得 idtextcompo.text = "test";//その文字列を設定 }
必要なライブラリ
using NCMB; //use Nifty Cloub Mobile Backend using System;
日付用の変数
//変数 DateTime mydate; public Text nyuYear;//入所日年 public Text nyuMon;//入所日月 public Text nyuDay;//入所日日 // string myString = nyuYear.text + "/" + nyuMon.text + "/" + nyuDay.text; DateTime mydate = DateTime.Parse(myString); NCMBObject obj = new NCMBObject ("myobj");//NCMBobjectのクラス名 obj.Add("hiduke", mydate);//hidukeフィールド名にmydateを追加 obj.SaveAsync ((NCMBException e) => { if (e != null) { //エラー処理 } else { //成功時の処理 Debug.Log("good");//送信成功の意味 } });
NCMBのユーザでなくオブジェクトのACLを変更する手順
動作したスクリプトを抜粋してるので動作確認無しです
NCMBUser user; string acltest; // Use this for initialization void Start () { user = NCMBUser.CurrentUser; string userName = user.UserName; //UserTypeフィールドにsuperの入っているユーザを検索してListに入れる NCMBQuery<NCMBUser> query = NCMBUser.GetQuery (); query.WhereEqualTo ("userType", "super"); query.FindAsync ((List<NCMBUser> userList , NCMBException e) => { if (e != null) { UnityEngine.Debug.Log ("失敗 : " + e.Message); } else { foreach (NCMBUser users in userList) { pairUsers.Add(users.UserName.ToString());//SUの名前をリストに入れる }//foreachここまで acltest = userList[0].ObjectId.ToString(); } }); getuserlist(); } void getuserlist(){ string userName = user.UserName; NCMBQuery<NCMBObject> query2 = new NCMBQuery<NCMBObject> ("testobj"); query2.WhereEqualTo ("player", userName);//Playerがusernameの結果を検索 query2.FindAsync ((List<NCMBObject> objList ,NCMBException e) => { if (e != null) { //検索失敗時の処理 Debug.Log("e"); return; } else { if ( objList == null || objList.Count == 0 ){ Debug.Log("e"); return; } Debug.Log(objList.Count); int po = 0; foreach (NCMBObject objdata in objList) {//ne var acl = objdata.ACL;//ACL書き換え準備 //読み込み権限全close acl.PublicReadAccess = false; //書き込み権限を全close acl.PublicWriteAccess = false; //userNameきっかけで読み書きアクセスお追加する acl.SetWriteAccess (user.ObjectId.ToString(), true); acl.SetReadAccess (user.ObjectId.ToString(), true); //他の方へのアクセス許可用 acl.SetReadAccess (acltest, true); objdata.ACL = acl;//保存準備 objdata.SaveAsync ((NCMBException z) => { if (z != null) { //エラー処理 } else { //成功時の処理 Debug.Log(acltest); //objdata.ACL = acl; Debug.Log("good");//送信成功の意味 } }); }//for eachここまで } }); }
できないらしい
また、ニフティクラウド mobile backend では、パスワード変更のAPIは用意していないため、パスワードを変更したい場合にはパスワードのリセットの処理が必要となります。
なので,RequestResetPassword()らしい(Unityで使えるかはしらん)
ニフティクラウド mobile backendのJavaScript SDKでアプリの会員管理を行う方法について解説します。
LINK: mb.cloud.nifty.com/doc/current/sdkguide/javascript/user.html
会員ロールのカスタムフィールド”nyusyo”の取得
NCMBUser currentUser = NCMBUser.CurrentUser;//現在のユーザ情報をcurrentUserに格納 PlayerPrefs.SetString("nyusyobi", currentUser["nyusyo"].ToString()); Debug.Log(currentUser["nyusyo"]);