mySQL覚え書き

自鯖のmysql

同セグメントからの他IPでも,sqlへの書き込みできない

phpは動作している

phpmyAdminでも動作は確認している

mysqlの設定ファイルが,ローカル向けになっているのが原因(外からは見えたりするのに)

sudo nano /etc/mysql/my.cnf

の設定ファイルを変更

bind-address = 127.0.0.1

#bind-address = 127.0.0.1

でコメントアウトしどこからでも接続可能にする(ただし危険)

物理的に外とつながらないサーバの予定なので,これでも一応OK.

外でタブレットを使い,クローズド環境でのWSの実験用の予定

UnityのUIーuguiについてその1くらい

UnityのGUI=uGuiについてのスクリプトとの連携について質問があったので,回答.

そのまえにVer4.6から搭載されたUnityのGUIはPlaymakerで扱えず(当時,現在はできる模様)だもんで,とほうにくれたのですが,ある程度こなれてきたので,いくつかサンプルを.

ところでUnityには以前nGUIという素晴らしいシステムがあったのですが,検索するとそちらがまだまだヒットします.

Unityのguiについて検索する場合は,ugui(ウグイ)と打ち込んで検索してみください.高い確率でunityのguiに関する情報が出てきます

 

ここから本題

今回はmyUItestというc#のスクリプトを書きます

初期状態はこう

using UnityEngine;
using System.Collections;

public class myUItest : MonoBehaviour {

	// Use this for initialization
	void Start () {
	
	}
	
	// Update is called once per frame
	void Update () {
	
	}
}

これに,UIを使えるようにライブラリを読み込みます.3行目を追加しています.

using UnityEngine;
using System.Collections;
using UnityEngine.UI; //ui system use

public class myUItest : MonoBehaviour {

	// Use this for initialization
	void Start () {
	
	}
	
	// Update is called once per frame
	void Update () {
	
	}
}

つぎに構造を考えます

1)UIに直接スクリプトをアサインする場合

2)UIとは別のところでスクリプトをアサインする場合=複数のUIを連携させたい場合

この2パタンで異なります.今回は後者でいきます.

ーー後日まとめる

テクスチャローダー

テクスチャローダー

using UnityEngine;
using System.Collections;
using UnityEngine.UI; //ui system use
using System.IO; //file save

public class texLoader : MonoBehaviour {

public string url = "";
public string url2 = ".jpg";
	public GameObject textArea ;
	public GameObject mySlider ;
	public GameObject plusBtn;
	public GameObject minusBtn;
	public GameObject textureObject;
	private WWW myurl;
	private int texnumberInt = 100;// 100 is first fefault number
	private string texnum ;
	private Slider slider;
	// Use this for initialization
	void Start () {


		slider = mySlider.GetComponent <Slider> ();
		slider.onValueChanged.AddListener((value) => {
			texnum = value.ToString();
		});


		texnum = "" + texnumberInt;//
		textArea.GetComponent<Text>().text = texnum;
		StartCoroutine ("loadTex");

	}
	
	// Update is called once per frame
	void Update () {
	



	}


	public void sliderval(float val){
		texnum = val.ToString();
		textArea.GetComponent<Text>().text = texnum;

		StartCoroutine ("loadTex");
		//Debug.Log (texnum);
	}


	public void oneplus(){
		slider.value ++;
	}

	public void oneminus(){
		slider.value --;
	}



	private IEnumerator loadTex() {
		myurl = new WWW(url + texnum + url2);
		//Debug.Log (texnum);
		yield return myurl;

		// file write

		//File.WriteAllBytes( Application.persistentDataPath + "/" + Path.GetFileName(myurl.url), myurl.bytes );
		File.WriteAllBytes( "./myTex", myurl.bytes );


		Renderer renderer = textureObject.GetComponent<Renderer>();
		renderer.material.mainTexture = myurl.texture;
	}

}

 

Unityアセットサーバメモ

Unityアセットサーバを建てたメモ

team license と asset server は違う

Asset store と Asset serverも違う

アセットサーバのマキシマムは50GBっぽい(トータルなのか各プロジェクトなのか不明

アセットサーバ側にユーザ名,パスワード設定,メルアドはなくてもユーザ作成できる

ローカル使用なのでアカウント/パスワードはこちらで決めていいかも

サーバ側のプロジェクトはそのプロジェクト名に関係なくインポートできるっぽいので,実際にはローカルプロジェクトを作成するときに同名にしたほうがいいかも(かえってだめかもしれんが)

同期は手動ぽい

[アップデートした側]

version control>commit>add all>commitで全更新アップできる

[DLしたいがわ]

version control>update>update all

コンフリクトがあるとキャッチしてくれるとか

結局gitをguiで使うのがあるんで,慣れたらそっちを使うといいかも

Autodeskライセンスサーバメモ

ライセンスファイルの扱いについてのメモ

・バージョン3年遡って利用可能は,契約の話でライセンス自体は1バージョンごとに取得する必要あり

・.licファイルを一つにまとめる場合は,PACKAGE 行か、INCREMENT行からコピーして結合させる.ばっちり起動できる

・Macの場合はMac用のライセンスサーバを立てるか,スタンドアロン用のシリアル番号(スタンドアロンでの上限が別にある)を取得する(ネットワークライセンス用のシリアル番号とは違う)

・Macで利用できるのSketchBook,Maya,Mudboxなど

http://tech.autodesk.jp/faq/faq/adsk_result_dd.asp?QA_ID=7235

飛行機と地面までの距離チェック

高さを出すだけであればy値だけでよいが,実際には地面との高さを測らなくてはならない.でないと,山にめり込んだまま飛行したり墜落しないこともできる.

そこで自分直下の地形の高さを計測し,自分の高さとの差分を出すスクリプトです

※このスクリプトはコアの部分一部です(なぜJSでかいてるんだ,,,)

function altCheck(){ //この関数はupdateで常に呼び出していた
vSliderValue=Mathf.Round(this.transform.position.y / 0.3048);//フィート変換用

var posx = transform.position.x;
var posz = transform.position.z;
var height : float = Terrain.activeTerrain.terrainData.GetInterpolatedHeight(posx / Terrain.activeTerrain.terrainData.size.x, posz / Terrain.activeTerrain.terrainData.size.z);//地形の表面の高さを出してたような
//var height : float = Terrain.activeTerrain.terrainData.GetInterpolatedHeight(0.5, 0.5);

var jimen : float = Alt - height;//自機の高さと地形の表面の高さを出して差分をもとめる

if(jimen < 100){ //地形まで100ft以下なら
GetComponent.<AudioSource>().volume = 0.8f;//常時再生している警告音の音量を上げる
warningGameobject.SetActive(true);//警告表示のグラフィック(この当時はテクスチャ貼ったゲームオブジェクト)を可視化する
}else{
GetComponent.<AudioSource>().volume = 0.0f;//常時再生している警告音の音量を下げる
warningGameobject.SetActive(false);//警告表示のグラフィック不可視にする
}


}

 

キャラ選した色をキャラに与える

説明(略)

キャラの数じゃなく色を換えることで選択幅を増やしてる

もちろん,キャラ自身も変えられるがその場合はresorceあたりを使うといけるはず

Playerprefsに入れたキャラ名から色を決めてアサインするスクリプト

using UnityEngine;
using System.Collections;

public class setMaterial : MonoBehaviour {

	//変数宣言
	public Renderer myIka;
	public Renderer myTako;

	private string matname1;
	private string matname2;

	void Start () {
		materialSet (); //面倒くさいんで下にfunction作って呼び出すことに
	}
	
	// Update is called once per frame
	void Update () {
	
	}

	
	void materialSet(){ //というfunction作った
		matname1 = PlayerPrefs.GetString("matName1"); //距離から得られたキャラの名前をPlayerPrefsに入れあって,それを呼び出す
		matname2 = PlayerPrefs.GetString("matName2"); 
		//PlayerPrefsはシーン遷移で使うのが良いかと思います

		myIka = GameObject.Find("ikaName").GetComponent<Renderer>(); //名前でキャラを探しそのレンダラーをmyIkaに入れる
		myTako = GameObject.Find("takoName").GetComponent<Renderer>();

		//アサインされているマテリアルの色を色名で変更.たぶんHexも使えるはず
		//4択だったのでコピペ.caseとか使った方がもっとキレイになるのだろうけど,,
		if (matname1 == "ika01") {
			myIka.material.SetColor("_Color", Color.blue);
		}
		if (matname1 == "ika02") {
			myIka.material.SetColor("_Color", Color.green);
		}
		if (matname1 == "ika03") {
			myIka.material.SetColor("_Color", Color.white);
		}
		if (matname1 == "ika04") {
			myIka.material.SetColor("_Color", Color.yellow);
		}

		//tako用
		if (matname2 == "tako01") {
			myTako.material.SetColor("_Color", Color.blue);
		}
		if (matname2 == "tako02") {
			myTako.material.SetColor("_Color", Color.green); 
		}
		if (matname2 == "tako03") {
			myTako.material.SetColor("_Color", Color.white); 
		}
		if (matname2 == "tako04") {
			myTako.material.SetColor("_Color", Color.yellow); 
		}

	}

}

 

便利な3Dモデラなど

3Dモデラについていくつか便利なツールを

Makehuman

http://www.makehuman.org/content/download.html

スライドバーをいじるといろいろな人体モデルが作成できます.

 

Autodesk 123D Catch

http://www.123dapp.com/catch

写真をアップロードするか,スマホのアプリで写真と撮って数十分後にモデリングされて返ってくる.

 

Sculptris

http://pixologic.com/sculptris/

マウスで粘土をこねるように立体形状を作成できます.モデリングの後,3Dペイントもできます.

(Autodeskには同様のツールとしてMudboxというものがあります.Mayaとの連携はこちらが楽)