【问题标题】:Animation controller not starting via trigger in unity3d动画控制器未通过unity3d中的触发器启动
【发布时间】:2017-04-30 16:46:43
【问题描述】:

您好,我正在尝试通过游戏中的触发器启动动画,但似乎可以正常工作。我有一个带有动画的对象,我想在玩家进入“触发器”区域时启动它。

这是脚本:

#pragma strict

var animator: Animator;

function Start() {

}
function OnTriggerEnter() {

animator.Play(animator.name);

}


function Update () {

}

我得到的错误是:

Animator.GotoState:找不到状态 UnityEngine.Animator:播放(字符串)

层索引“-1”无效 UnityEngine.Animator:播放(字符串)

动画控制器名称为:AnimControle.controller

我似乎无法弄清楚我做错了什么?

谢谢

【问题讨论】:

  • 你在Play()方法animator.name中传递的值无效,你需要从你的动画师那里提一个有效的状态。
  • 请注意您的意思?你能给我解释一下吗?
  • Unity 添加Animator 组件时,您会为其设置不同的状态,对吗?例如:空闲跳跃。这就是你必须对Play() 方法说的话。但是您却提到了 animator.name 这不是一个有效的状态。
  • 一个菜鸟评论,但你不应该在开始时说animator = GetComponent("Animator");

标签: unity3d gear-vr


【解决方案1】:

您必须正确设置动画参数。 我建议你这个指南。 https://docs.unity3d.com/Manual/AnimationParameters.html

【讨论】:

    【解决方案2】:

    对于触发器,试试这个功能:

    animator.SetTrigger("carNorth");// Given that you already have a Trigger named carNorth
    

    @Hristo 所说的也是正确的。您在函数参数中传递触发器的名称。确保在传递之前在动画窗口中定义了触发器。

    对于您正在使用的功能,请参阅 Unity 官方文档 https://docs.unity3d.com/ScriptReference/Animator.Play.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多