facebook twitter hatena line email

「Unity/おすすめアセット/学生」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(URP対応できず)
(Resourceからロードして動作するサンプル)
 
(同じ利用者による、間の1版が非表示)
行23: 行23:
 
void Start()
 
void Start()
 
{
 
{
        GameObject prefab = (GameObject)Resources.Load("Taichi/Models Mecanim/m01_blazer_000_l");
+
    GameObject prefab = (GameObject)Resources.Load("Taichi/Models Mecanim/m01_blazer_000_l");
        GameObject personObj = Instantiate(prefab, Vector3.zero, Quaternion.identity);
+
    GameObject personObj = Instantiate(prefab, Vector3.zero, Quaternion.identity);
        personObj.transform.localRotation = Quaternion.Euler(0, 180f, 0);
+
    personObj.transform.localRotation = Quaternion.Euler(0, 180f, 0);
        Animator animator = personObj.GetComponent<Animator>();
+
    Animator animator = personObj.GetComponent<Animator>();
        animator.runtimeAnimatorController = runtimeAnimatorController;
+
    animator.runtimeAnimatorController = runtimeAnimatorController;
 +
    // 重力
 +
    Rigidbody rigidbody = personObj.AddComponent<Rigidbody>();
 +
    rigidbody.constraints = RigidbodyConstraints.FreezeRotation;
 +
    // 接触
 +
    CapsuleCollider collider = personObj.AddComponent<CapsuleCollider>();
 +
    collider.center = new Vector3(0f, 1f, 0f);
 +
    collider.height = 2;
 
}
 
}
 
</pre>
 
</pre>

2022年10月9日 (日) 08:36時点における最新版

アセット

アプリサイズ

  • taichiのアセットインポートして、ios通常ビルドで230MB
  • taichiのアセットインポートして、iosのcompresionMethodをLZ4でビルドで150MB

キャラクタ動かし方

  1. シーン上にTaichiのmodelをドラッグ
  2. Assetsの下にAnimetionsのdirを作成しCreate/AnimatorControllerを作成
  3. 例として、PersonAnimatorControllerとして作成
  4. TaichiのanimetorにAnimationのMotionをPersonAnimatorController上へドラッグして入れる
  5. defaultを設定するためEntryから矢印を引く

URP対応できず

オブジェクトがピンクになったし、materialをlitにしても改善できずだった。

Resourceからロードして動作するサンプル

[SerializeField]
RuntimeAnimatorController runtimeAnimatorController;
void Start()
{
    GameObject prefab = (GameObject)Resources.Load("Taichi/Models Mecanim/m01_blazer_000_l");
    GameObject personObj = Instantiate(prefab, Vector3.zero, Quaternion.identity);
    personObj.transform.localRotation = Quaternion.Euler(0, 180f, 0);
    Animator animator = personObj.GetComponent<Animator>();
    animator.runtimeAnimatorController = runtimeAnimatorController;
    // 重力
    Rigidbody rigidbody = personObj.AddComponent<Rigidbody>();
    rigidbody.constraints = RigidbodyConstraints.FreezeRotation;
    // 接触
    CapsuleCollider collider = personObj.AddComponent<CapsuleCollider>();
    collider.center = new Vector3(0f, 1f, 0f);
    collider.height = 2;
}