admin のすべての投稿

Unityで作成した子オブジェクトを削除

子化したPrefabを削除します

ボタン用のスクリプトで使用しています

	public void resutPanelClose(){//パネルクローズ時に作成したprefabを削除する
		resultPanelObj.SetActive(false);
		foreach ( Transform n in resultContent)
		{
			GameObject.Destroy(n.gameObject);
		}
	}

 

NCMB データストアの検索結果が空なのにエラーが出ないで問題になる件

ユーザ名でデータストア検索しても,ユーザ名に紐付いてるデータがないときの処理など.(あまりつかわないかもしれないけど,)

エラー出ずに,スルーして,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 ユーザ情報の任意のフィールド値を呼び出す

NCMBの会員情報にuserTypeというプロパティでは呼び出せない値があり,それを呼び出したいとき

NCMBUser currentUser = NCMBUser.CurrentUser;//現在のユーザ情報をcurrentUserに格納
string myUserType = currentUser["userType"].ToString();
PlayerPrefs.SetString("userType", myUserType);//userTypeをPlayerprefsの_userTypeに格納

いや,これで良かったなんて,,半日くらいなやんでたのに,,

 

NCMBでログインしたユーザ名で出てくるデータのObj.IDを検索する

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);
		//	}
			}
		});

	}

 

UnityでList<>を使う(NCMB関連)

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;

これを.

ネットワーク時刻を取得するときにも似たようなのを使いました.

Nifty Cloud Backend Androidビルド後のエラー

ビルドは成功するものの,端末側でインストールできず.

インストールしようとすると「ファイルの解析に失敗」と出る

原因:不明

解決策:NCMBのSDKをVer.2.0.0にダウングレードする(2.2.2>2.1.1 でもエラー発生)

参考:

https://github.com/NIFTYCloud-mbaas/UserCommunity/issues/493

Unity(5.3)とNCMBのコンフリクトなのか?

Nifty Cloud Mobile Backend使い方

理由 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);//これは回転
	}
}