LoginSignup
15
16

More than 5 years have passed since last update.

Unity初歩的プログラミングメモ

Last updated at Posted at 2015-01-25

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"に設定。これで直りました。

15
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
16