子化したPrefabを削除します
ボタン用のスクリプトで使用しています
public void resutPanelClose(){//パネルクローズ時に作成したprefabを削除する resultPanelObj.SetActive(false); foreach ( Transform n in resultContent) { GameObject.Destroy(n.gameObject); } }
子化したPrefabを削除します
ボタン用のスクリプトで使用しています
public void resutPanelClose(){//パネルクローズ時に作成したprefabを削除する resultPanelObj.SetActive(false); foreach ( Transform n in resultContent) { GameObject.Destroy(n.gameObject); } }
ユーザ名でデータストア検索しても,ユーザ名に紐付いてるデータがないときの処理など.(あまりつかわないかもしれないけど,)
エラー出ずに,スルーして,Listがゼロのまま読み取るので最終的にエラーでる.
Listの長さを計測してゼロのときにエラーと判定させるという方法で回避
bool checker = false; string useinfoStr = PlayerPrefs.GetString ("userName");//get username from playerprefs NCMBQuery<NCMBObject> query = new NCMBQuery<NCMBObject> ("usetInfo"); Debug.Log ("user" + useinfoStr); query.WhereEqualTo ("playerName", useinfoStr); query.FindAsync ((List<NCMBObject> objList ,NCMBException e) => {//moto if (e != null) { //検索失敗時の処理 //kokonihyouji alert1.SetActive(true); return; } else { if ( objList == null || objList.Count == 0 ){ alert1.SetActive(true); return; }else{ NCMBObject obj = objList[0]; PlayerPrefs.SetString("objID", obj.ObjectId); checker = true; } } });
の
if ( objList == null || objList.Count == 0 ){}
が肝
NCMBの会員情報にuserTypeというプロパティでは呼び出せない値があり,それを呼び出したいとき
NCMBUser currentUser = NCMBUser.CurrentUser;//現在のユーザ情報をcurrentUserに格納 string myUserType = currentUser["userType"].ToString(); PlayerPrefs.SetString("userType", myUserType);//userTypeをPlayerprefsの_userTypeに格納
いや,これで良かったなんて,,半日くらいなやんでたのに,,
Levelというキーには1が保存されていて,デバッグでそれを見ます
string myobjID = PlayerPrefs.GetString("objID"); NCMBObject testClass = new NCMBObject("usetInfo"); testClass.ObjectId = myobjID; testClass.FetchAsync (); System.Threading.Thread.Sleep(2000); Debug.Log( testClass["Level"] );
object IDがないとデータを取り出せないっぽい.
ログイン名でユーザ名を検索し,PlayerPrefsにセットし,
その名前で一致する(一致は完全一致みたい)データのリストをとりだし(でも1件しか入っていない),その1件目をobjに変換し,objのプロパティobjidを取り出す,,,めんどくさい
スクリプト
public void getUserInfo(){ string useinfoStr = PlayerPrefs.GetString ("userName");//get username from playerprefs NCMBQuery<NCMBObject> query = new NCMBQuery<NCMBObject> ("usetInfo"); //Scoreの値が7と一致するオブジェクト検索 query.WhereEqualTo ("playerName", useinfoStr); query.FindAsync ((List<NCMBObject> objList ,NCMBException e) => {//moto if (e != null) { //検索失敗時の処理 } else { NCMBObject obj = objList[0]; PlayerPrefs.SetString("objID", obj.ObjectId); // foreach (NCMBObject obj in objList) { //1件だけ出ると仮定して // Debug.Log ("objectId:" + obj.ObjectId); // } } }); }
NCMB(Nifty Cloud Mobile Backend)のデータ検索の際のサンプルスクリプトの
//QueryTestを検索するクラスを作成 NCMBQuery<NCMBObject> query = new NCMBQuery<NCMBObject> ("QueryTest"); //Scoreの値が7と一致するオブジェクト検索 query.WhereEqualTo ("Score", 7); query.FindAsync ((List<NCMBObject> objList ,NCMBException e) => { if (e != null) { //検索失敗時の処理 } else { //Scoreが7のオブジェクトを出力 foreach (NCMBObject obj in objList) { Debug.Log ("objectId:" + obj.ObjectId); } } });
を使うとコンパイルエラーでる
List<>が使えないっていうエラーです.
で,includeすれば使えるらしいんです
using System.Collections.Generic;
これを.
ネットワーク時刻を取得するときにも似たようなのを使いました.
ビルドは成功するものの,端末側でインストールできず.
インストールしようとすると「ファイルの解析に失敗」と出る
原因:不明
解決策:NCMBのSDKをVer.2.0.0にダウングレードする(2.2.2>2.1.1 でもエラー発生)
参考:
https://github.com/NIFTYCloud-mbaas/UserCommunity/issues/493
Unity(5.3)とNCMBのコンフリクトなのか?
理由 iOSアプリは通信が全てhttpsでないとダメ
自鯖でhttps使えなくもないけど,認証系にも使いたい
新規アカウント作成後の最初のチュートリアル(APIキーの設定系など)
http://mb.cloud.nifty.com/doc/current/introduction/quickstart_unity.html
Psuh通知でMonacaの参考方法を参考にした
https://docs.monaca.io/ja/manual/backend/push_notification/gcm/
NCMBエラーコード一覧
http://mb.cloud.nifty.com/doc/current/rest/common/error.html
メモ 引数eで受けたら, e.ErrorCode でエラーコードをStringで入る
サンプルのコードそのまま
using UnityEngine; using System.Collections; using NCMB; //use Nifty Cloub Mobile Backend public class NCMB_test : MonoBehaviour { // Use this for initialization void Start () { // クラスのNCMBObjectを作成 NCMBObject testClass = new NCMBObject("TestClass"); // オブジェクトに値を設定 testClass["message"] = "Hello, NCMB!"; // データストアへの登録 testClass.SaveAsync(); } // Update is called once per frame void Update () { } }
WEBでオブジェクト確認するけど,WEBの方は更新がかなり遅い,,,
スクリプトであるオブジェクトの子にするスクリプトです
using UnityEngine; using System.Collections; public class test2 : MonoBehaviour { public GameObject maru1 ;//親のオブジェクトをアサインする public GameObject entyu;//子のオブジェクトをアサインする // Use this for initialization void Start () { } // Update is called once per frame void Update () { } public void oyako(){ entyu.transform.parent = maru1.transform;//entyuの親はmaruです entyu.transform.position = maru1. transform.position; entyu.transform.rotation = maru1.transform.rotation; //entyu.transform.position = new Vector3 (2, 2, 2);//これは移動 entyu.transform.rotation = new Quaternion(10, 10, 5, 4);//これは回転 } }