|
求助ˋ各位大神能幫幫我:"(
還是個Unity新手有很多不懂的地方請多多包涵
最近做了第一人稱加手部動畫的練習,
可是打入腳本後按鍵盤按鍵,手部動作還是沒反應
以下是我打的程式碼
[code=csharp]using UnityEngine;
using System.Collections;
public class onc : MonoBehaviour {
public Animator Anim;
int runningHash=Animator.StringToHash("running");
int RunStateHash =Animator.StringToHash("Base Layer.Run");
int weapononHash=Animator.StringToHash("weaponon");
int IdleWithWeaponStateHash =Animator.StringToHash("Base Layer.IdleWithWeapon");
int hit01Hash=Animator.StringToHash("hit01");
int hit01StateHash =Animator.StringToHash("Base Layer.hit01");
int hit02Hash=Animator.StringToHash("hit02");
int hit2StateHash =Animator.StringToHash("Base Layer.hit2");
public GameObject Torch;
// Use this for initialization
void Start () {
Anim= GetComponent<Animator>();
}
// Update is called once per frame
void Update () {
AnimatorStateInfo stateInfo = Anim.GetCurrentAnimatorStateInfo(0);
Anim.SetBool ("weaponon", false);
Anim.SetBool ("running", false);
Anim.SetBool ("hit01", false);
Anim.SetBool ("hit02", false);
if (Input.GetKeyDown (KeyCode.LeftShift))
if (Input.GetKeyDown (KeyCode.LeftShift) && Input.GetKey (KeyCode.W) && stateInfo.fullPathHash==RunStateHash|| Input.GetKeyDown (KeyCode.LeftShift) && Input.GetKey (KeyCode.UpArrow)&&stateInfo.fullPathHash== RunStateHash) {
Anim.SetBool ("running", true);
} else if (Input.GetKey (KeyCode.E) && stateInfo.fullPathHash == IdleWithWeaponStateHash) {
Anim.SetBool ("weaponon", true);
} else if (Input.GetKey (KeyCode.Z)&& stateInfo.fullPathHash== hit01StateHash) {
Anim.SetBool ("hit01", true);
} else if (Input.GetKey (KeyCode.X)&& stateInfo.fullPathHash== hit2StateHash) {
Anim.SetBool ("hit02", true);
}
if(Input.GetKey (KeyCode.E))
{
GameObject Temp;
Temp = (GameObject)Instantiate (Torch);
Temp.SetActive (true);
}
}
}
[/code]
以及Animator,手臂放的位置
我把手臂骨骼動畫放在UNITY內建的第一人稱下面
想要做出按下Shift+前進可以撥放Run的動畫
還有按Z.X可以打擊(hit01.2動畫)
按E開始撥放IdleWithWeapon動畫時火把才會出現在手上
可以幫我看看哪裡出了問題嗎?
非常感謝~QWQ
|
|