Javascript 尚未分配控件的变量animacao
我试图让我的角色在一个Javascript 尚未分配控件的变量animacao,javascript,unity3d,unity5,Javascript,Unity3d,Unity5,我试图让我的角色在一个动画中行走,在另一个动画中静止不动 在Animator中,我创建了一个类型为floatandar的参数来控制动画之间的交换,如下图所示 并为箭头指定以下条件: *andar>0.1=1 *andar
动画中行走,在另一个动画中静止不动
在Animator
中,我创建了一个类型为float
andar的参数来控制动画之间的交换,如下图所示
并为箭头指定以下条件:
*andar>0.1=1
*andar<0.1=顶部
其中一个箭头的示例:
我的javascript代码:
#pragma strict
var speed : float;
var personagem : GameObject;
var animacao : Animator;
function Start () {
speed = 2;
}
function Update () {
transform.position.x += Input.GetAxis("Horizontal") * speed * Time.deltaTime;
//THE ERROR OCCURS IN "andar"!!!!!_________________________________________
animacao.SetFloat("andar",Mathf.Abs(Input.GetAxis("Horizontal")));
//________________________________________________________________
if(Input.GetAxis("Horizontal") < 0){
personagem.gameObject.transform.eulerAngles = Vector2(0,180);
}
else if(Input.GetAxis("Horizontal") > 0){
personagem.gameObject.transform.eulerAngles = Vector2(0,0);
}
}
#pragma strict
变量速度:浮动;
游戏对象;
var animacao:动画师;
函数启动(){
速度=2;
}
函数更新(){
transform.position.x+=Input.GetAxis(“水平”)*speed*Time.deltaTime;
//错误发生在“andar”中_________________________________________
animacao.SetFloat(“andar”,Mathf.Abs(Input.GetAxis(“水平”));
//________________________________________________________________
if(Input.GetAxis(“水平”)<0){
personagem.gameObject.transform.eulerAngles=Vector2(0180);
}
else if(Input.GetAxis(“水平”)>0){
personagem.gameObject.transform.eulerAngles=Vector2(0,0);
}
}
也许这可能与统一版本有关
我正在学习本教程。
我的统一版本=5.3.1f1
Unity教程版本=4.3.2f1
错误:
UnassignedReferenceException:Controls的变量animacao具有
没有分配。您可能需要指定animacao变量
检查程序中控件脚本的。
UnityEngine.Animator.SetFloat(System.String名称,单值)
Update()(位于Assets/Assets/Scripts/controlles.js:17)
答案很简单,您需要在inspector中将容纳动画师的对象拖放到脚本的animacao
字段中。否则,脚本将不知道要使用哪个动画师
事实上,视频中没有显示,它是在5:28左右的黑屏上完成的。谢谢,我今晚会测试并警告您。