UnityでiOSアプリ開発時に調べた初歩的なプログラミングメモ。
GUIでの操作は画像貼るのが面倒なのでテキストで説明。
GameObjectの生成
public GameObject Prefab; // Inspector上でPrefabを設定
GameObject CreateGameObject()
{
// GameObjectをゲーム上に生成
GameObject gameObject = (GameObject)Instantiate(
Prefab, // 生成するPrefab
new Vector3(0.0f, 0.0f, 0.0f), // 位置
Quaternion.identity); // 角度
return gameObject;
}
GameObjectの削除
void DestroyGameObject(GameObject gameObject)
{
// GameObjectをゲーム上から削除
Destroy(gameObject);
// 第2引数に削除までの秒数を指定可能(1.0f=1秒)
// Destroy(gameObject, 1.0f);
}
GameObjectからComponentを取得
// GameObjectに設定したColliderを取得
Collider GetCollider(GameObject gameObject)
{
Collider collider = gameObject.GetComponent<Collider>();
return collider;
}
// 同じ方法でGameObject設定したScriptも取得可能
Script GetScript(GameObject gameObject)
{
Script script = gameObject.GetComponent<Script>();
return script;
}
指定したTagからGameObjectを取得
// 単一のGameObjectを取得する場合(例、プレーヤは単一で存在)
GameObject player = GameObject.FindGameObjectWithTag("Player");
// 複数のGameObjectを取得する場合(例、敵は複数で存在)
GameObject[] enemies = GameObject.FindGameObjectsWithTag("Enemy");
タッチされたGameObjectを取得
void Update()
{
// 毎ループ当たり判定を行う
Touches();
}
void Touches()
{
if (Input.GetMouseButtonDown(0))
{
// メインカメラ(tagにMainCameraを設定)からの当たり判定
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
// メインカメラ以外に設定したカメラからの当たり判定
// OriginalCamera camera = GameObject.FindWithTag("OriginalCamera");
// Ray ray = camera.ScreenPointToRay(Input.mousePosition);
RaycastHit hit = new RaycastHit();
if (Physics.Raycast(ray, out hit))
{
// タッチされたGameObject
GameObject gameObject = hit.collider.gameObject;
}
}
}
UnityでiOSのArchive生成時にビルドエラー発生
UnityでiOS用のXcodeを吐き出し、Archive生成時に、ビルドエラーが発生。
Dsymutil Error
error: invalid abbreviation code [114] for DIE at 0x00002c82 in '/Users/narumi/Library/Developer/Xcode/DerivedData/Unity-iPhone-gbmljcuczmtzcnaojsftlrghkvka/Build/Intermediates/ArchiveIntermediates/Unity-iPhone/IntermediateBuildFilesPath/Unity-iPhone.build/Release-iphoneos/Unity-iPhone.build/Objects-normal/armv7/Assembly-CSharp.dll.o'
"Dsymutil Error"との事。
Xcode上で「Build Settings」→「Build Options」→「Debug Information Format」
"DWARF with dSYM file"から"DWARF"に設定。これで直りました。