2014年11月22日土曜日

スマホがリカバリーモードで起動した場合

先日、力仕事をした後に手元が狂ってスマホを投げてしまいました。。
裏蓋とバッテリーが外れて本体の角には深い傷が…
とりあえず電源を入れてみるとリカバリーモードで起動しました。
ボリュームキーで上下選択、電源キーで決定するようです。
Powerdownを選択して起動しなおしたらいつも通り起動しました。

2014年11月15日土曜日

初macの使用感想

mac mini 2014で作ったアプリをiosシュミレーターで動かすまでやってみました。
感想はというと…winユーザにはおすすめできません
理由は以下です。

macの使いにくい点

・jisキーボードとの相性が悪い
設定画面からキーボードを認識させてあげないといけません。
バックスラッシュを入力しようとするとアンダースコアにしかならない。(alt+yで入力可能)
一部アプリのパスワードで大文字の入力ができない。(yosemiteのバグ?)
・ディスプレイの解像度が合わない
ディスプレイの設定画面でaltキーを押しながら解像度設定をしないといけない(裏技?)
・フォルダのパスをコピーできない
アプリで解決できるそうです。
・システムのフォントサイズを変更できない
4kディスプレイの場合は綺麗に解像度を4分の1にするモードがあるそうです。
・ミドルウエアのアンインストールはコンソールからコマンド入力する
jdkとか共通機能の削除はlinaxコマンドが必要です。

一通りショートカットを覚えてやっとストレス無く使えるようにはなってきました。

2014年11月6日木曜日

Unity warning CS0618: SetActiveRecursively

SetActiveRecursivelyを使用するとゲームオブジェクトを非表示にできます。
RendrerやTextureを使うのとは違い。子オブジェクトもまとめて非表示にできます。
使用の際に以下の注意が表示されていました。

Assets/x/xx.cs(41,39): warning CS0618: `UnityEngine.GameObject.SetActiveRecursively(bool)' is obsolete: `gameObject.SetActiveRecursively() is obsolete. Use GameObject.SetActive(), which is now inherited by children.'

SetActiveRecursivelyは廃止され。
SetActive()になりました。使い方は同じです。
SetActive(false)で非表示になります。真を渡せば再表示できます。

2014年11月5日水曜日

Unity CSVファイルの読み取り

UnityのC#スクリプトでCSVファイルを読み取るサンプルソースです。
Resources.LoadはAsett/Resourcesフォルダのファイルを読み込みます。
Resourcesフォルダを作成し、そこにファイルを配置してください。

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System.IO;
//適当なゲームオブジェクトに貼りつけてください
public class FileSousa  : MonoBehaviour{
private string[,] CsvDate1;

void Start () {
CsvDate1= readCsv ("Namelist");
Debug.Log (CsvDate1 [2, 0]);//三行目の一列目を表示例
}

private string[,] readCsv(string fileName){

TextAsset ta = Resources.Load(fileName, typeof(TextAsset)) as TextAsset;
//改行コードで一次配列に
string[] lineArray = ta.text.Replace("\r\n", "\n").Split('\n');   
ArrayList dataList = new ArrayList (lineArray);

//行数と列数を
int lineCount =  dataList.Count;
string tmp =  dataList [0].ToString();
string[] tmp2 = tmp.Split(","[0]);
int colCount = tmp2.Length;
string[,] tmpCsvData = new string[lineCount, colCount];
int i = 0;


foreach (string str1 in  dataList) {
int j = 0;
string[] tempLine = str1.Split(',');
foreach(string str2 in tempLine){
//二次配列を作成
tmpCsvData[i, j] = str2;
j++;
}
i++;
}
return tmpCsvData;
}
}

MonoBehaviourを削除して普通のクラスにしてもOKです。
ゲームデータをCSVで管理できます。

2014年11月1日土曜日

着信音を最大以上に大きくするアプリ

以前作成した通話音量を最大以上にアップさせるアプリについて。
着信音量
アプリのダウンロードはこちら
レビューをみたところ着信音を大きくするアプリとして利用されているようです。
プログラムの仕組み上、着信中は全ての音量がブースとされます。
機種によっては通話音を4割ほど引き上げることができているようです。

公開しているアプリはAnroidAPIを特殊な使い方をしているものが多いのでAndroidのバージョンと機種で挙動が大きく変わってしまいます。
公言されていませんが全てのディバイスを完全なバックグランドサービスから操作できるのはバージョン3.xまでですし。

スマホの内部ストレージの容量回復

スマホを何年も初期化せずに使用しているとデータベースに使用されないデータが増えていきます。使用するアプリや数にもよりますが数百メガバイトも消費することも。

内部ストレージの容量を回復させるにはスマホを出荷時の状態へ戻すのが手っ取り早いようです。
メーカーにもよりますが母艦でバックアップを取ってからスマホを初期化して復元をすれば、内蔵ストレージの容量が増えます。

旧式や廃価版スマホは内蔵ストレージが少ないので年に一回くらい初期化することをお勧めします。

Unity at System.Reflection.Emit.AssemblyBuilder.Save

Unityにmp3ファイルを追加したところAvastにDllをウイルス扱いされてしまった。

  at System.Reflection.Emit.AssemblyBuilder.Save (System.String assemblyFileName, PortableExecutableKinds portableExecutableKind, ImageFileMachine imageFileMachine) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.CodeGen.Save (System.String name, Boolean saveDebugInfo, Mono.CSharp.Report Report) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.Driver.Compile () [0x00000] in <filename unknown>:0 

  at Mono.CSharp.Driver.Main (System.String[] args) [0x00000] in <filename unknown>:0 

Unityのプロジェクトを除外リストに入れて実行ボタンを押せばDLLが再作成されます。