###やっていること
キャラクターの足についている3つのAnimation (Walk, Idle, Fly)を、地面についていたらIdle,地面についている状態で移動したらWalk,空中にいるときはFly,
に変えています
###起きた問題
変える時にCrossfadeを使っているのですが、IdleからFly, FlyからIdleに変わるときは正常にゆっくり切り替わりますが、Walkに変わる、Walkから変わる時は一瞬で変わってしまいます。
何が原因なのでしょうか?
足についているスクリプト
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class ReverseLegScript : MonoBehaviour { 6 7 public float animationspeed = 100; 8 9 10 public GameObject leftleg1; 11 public GameObject leftleg2; 12 public GameObject leftleg3; 13 public GameObject leftleg4; 14 public GameObject leftpos3; 15 public GameObject leftpos4; 16 17 public GameObject rightleg1; 18 public GameObject rightleg2; 19 public GameObject rightleg3; 20 public GameObject rightleg4; 21 public GameObject rightpos3; 22 public GameObject rightpos4; 23 24 public Animation anim; 25 26 private GameObject player; 27 private PlayerControll playercontroll; 28 private GameObject playerforward; 29 30 void Start () 31 { 32 player = GameObject.Find("Player"); 33 anim = GetComponent<Animation>(); 34 playercontroll = player.GetComponent<PlayerControll>(); 35 playerforward = GameObject.Find("GameSystems/PlayerForward"); 36 } 37 38 void Update () 39 { 40 leftleg3.transform.position = leftpos3.transform.position; 41 leftleg4.transform.position = leftpos4.transform.position; 42 43 rightleg3.transform.position = rightpos3.transform.position; 44 rightleg4.transform.position = rightpos4.transform.position; 45 46 var hor = Input.GetButton("Horizontal"); 47 var ver = Input.GetButton("Vertical"); 48 49 transform.rotation = playerforward.transform.rotation; 50 51 //地面についているとき 52 if(playercontroll.grounded == true) 53 { 54 //horかverを押したら 55 if (hor || ver) 56 { 57 playerforward.transform.rotation = Quaternion.RotateTowards(playerforward.transform.rotation, player.transform.rotation, animationspeed * 4 * Time.deltaTime); 58 59 //walkにする 60 anim.CrossFade("Walk", 0.3f); 61 } 62 else //押してなかったら 63 { 64 //idleにする 65 anim.CrossFade("Idle", 0.2f); 66 } 67 } 68 else //地面についていないとき 69 { 70 //flyにする 71 anim.CrossFade("Fly", 0.2f); 72 } 73 } 74}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。