技術

Unity Listからforeachを使ってremoveする

backham
foreach(Class item in Lists){ if(item.id == id){ Lists.remove(item); } } こんなかんじでやると、 InvalidOperationException: Collection was modified; enumeration operation may not execute. とエラーになるので、 List<Class> TmpList = Lists; foreach(Class item in Lists){ TmpList.Add(item ); } foreach(Class item in TmpList){ if(item.id == id){ Lists.remove(item); } } こうしてやる

Unity StreamingAssetsからファイルを読み出す

backham
Streaming Assets で iOSとAndroidの違いにハマったのでメモ。 string FilePath; #if UNITY_IPHONE FilePath = Application.dataPath + "/Raw/" + filename; #else string fullPath = "jar:file://" + Application.dataPath + "/!/assets/" + filename; WWW www = new WWW (fullPath); while (!www.isDone) { } FilePath = Application.persistentDataPath + filename; File.WriteAllBytes (toPath,www.bytes); #endif iOS

Unity の lookAt を おきかえる

backham
UnityのlookAtは便利ですが、回転をさらに細かく制御しようと思うと難しいので置き換えます。 Rot.transform.LookAt (Vector3.zero); こうするところを、 Vector3 relative = gameObject.transform.InverseTransformPoint(Vector3.zero);<br /> float angle = Mathf.Atan2(relative.x, relative.z)

Google API OAuth 2.0 の認証でハマった

backham
<script type="text/javascript"> var client_id = "クライアントID"; var scopes = 'https://www.googleapis.com/auth/drive'; function checkAuth() { gapi.auth.authorize( { 'client_id':client_id, 'scope':scopes, 'immediate':true }, function(authResult){ console.log(arguments); }); } </script> <script type="text/javascript" src="https://apis.google.com/js/client.js?onload=checkAuth"</script> こんな感じで認証部分を記述しても何度やってもこ

BlenderでUV展開

backham
3DViewでモデルを選択し、Object ModeからEdit Modeに変更。 左側のメニュー内のShading/UVsを選択。 Shading/UVs > UVs > UV Mapping >