とあるシステムの中の人

プログラミング、育児、武道、3Dグラフィック、ゲーム開発

unityでキャラクターをリソース化する

unity開発のメモ。

unityではキャラクターをシーンにドラッグ&ドロップで配置可能だが、コードを使用して登場させることも可能。 自分が感じる用途としては、コードで配置できるので位置を制御したり、大人数を配置するのにきっと楽。

キャラクターをリソース化する

まずはコードから呼び出せるように、キャラクターをリソース化する。 ヒエラルキーからキャラクターのオブジェクトを選択して、フォルダーへD&D。 このとき、フォルダ名は「Resources」にすること。

ここで「Original Prefab」を選択。

選択するとこんな感じになる 。シーン上のキャラクターは不要になるので削除する。

あとはコードを書く。雑ですが、とりあえず動く用の検証コード。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Player : MonoBehaviour
{
    private GameObject player;
    private GameObject playerPrefab = null;
    // Start is called before the first frame update
    void Start()
    {
        Vector3 pos = Vector3.zero;
        player = MakePlayer(pos);
    }

    // Update is called once per frame
    void Update()
    {
        
    }
    private GameObject MakePlayer(Vector3 pos)
    {
        GameObject player = null;
        playerPrefab = playerPrefab ?? (GameObject)Resources.Load("averter");
        Debug.Log("averter make");
        player = (GameObject)Instantiate(playerPrefab, pos, Quaternion.identity);

        return player;
    }
}

これをヒエラルキー上に配置したGameObjectにアタッチすればOK。 出現位置も調整可能。