前提・実現したいこと
UnityでRunアニメーションを実行
発生している問題・エラーメッセージ
Runアニメーションが上下か左右しかできない。 GetComponent<Animator>().SetFloat("Speed",Mathf.Abs(add_pos.x)); GetComponent<Animator>().SetFloat("Speed",Mathf.Abs(add_pos.z)); これを一つにまとめて上下左右で移動アニメーションが実行されるようになりたいです。アニメーションのパラメーターはfloatで0.01で設定しています。
該当のソースコード
Unity
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
Animator animator;
public float MoveSpeed = 5.0f;
// Start is called before the first frame update void Start() { animator = GetComponent<Animator>(); } // Update is called once per frame void Update() { if (Input.GetKeyDown(KeyCode.Space)) { animator.SetTrigger("Jump"); } Movement(); } void Movement() { Vector3 add_pos = Vector3.zero; if (Input.GetKey(KeyCode.RightArrow)) { add_pos.x += 3.0f; } else if (Input.GetKey(KeyCode.LeftArrow)) { add_pos.x -= 3.0f; } if (Input.GetKey(KeyCode.UpArrow)) { add_pos.z += 3.0f; } else if (Input.GetKey(KeyCode.DownArrow)) { add_pos.z -= 3.0f; } GetComponent<Animator>().SetFloat("Speed",Mathf.Abs(add_pos.x)); add_pos *= Time.deltaTime; transform.localPosition += add_pos; }
}
### 試したこと GetComponent<Animator>().SetFloat("Speed",Mathf.Abs(add_pos.x)); GetComponent<Animator>().SetFloat("Speed",Mathf.Abs(add_pos.z)); 上から順に実行されるため、Z軸でしか移動できない。 GetComponent<Animator().SetFloat("Speed",Mathf.Abs(add_pos.x),Mathf.Abs(add_pos.z); 1つしか指定できない。 ### Unity 2019.4.11f1 Unity初心者でプログラミング自体にも慣れていないため解決する方法が見つかりません。足りない情報などあると思いますがよろしくお願いいたします。
下記参照の他、「unity animator ブレンドツリー」で調べてみてください。
https://docs.unity3d.com/ja/current/Manual/class-BlendTree.html
https://light11.hatenadiary.com/entry/2019/04/18/224048
回答1件
あなたの回答
tips
プレビュー