当前位置: 首页 > 知识库问答 >
问题:

Unity3d OnTriggerEnter,动画

颛孙智勇
2023-03-14

我想让我的角色在进入扳机时按下一个键时播放一段动画,但我想不通。你能帮忙吗?这里是我的代码

public Text text;
public Animator anim;

public void Start()
{
    text.enabled = false;
    anim = GetComponent<Animator>();
}

public void OnTriggerEnter()
{
    text.enabled = true;
}
   public void Update()
{
   if (Input.GetKeyDown("e"))
   {
    anim.Play("DoorOpen");
   } 
}

}

共有1个答案

冉昊
2023-03-14

首先,OnTriggerEnter采用Collider类型的参数。否则它永远不会被Unity调用。

然后,在ontriggerexit中将bool标志设置为true并将其重置为false-例如,您可以使用正在设置的text.enabled

公共文本文本;大众动画师阿尼姆;

private void Start()
{
    text.enabled = false;
    anim = GetComponent<Animator>();
}

private void Update()
{
    if (text.enabled && Input.GetKeyDown(KeyCode.E))
    {
        anim.Play("DoorOpen");
    } 
}

private void OnTriggerExit (Collider other)
{
    text.enabled = false;
}

private void OnTriggerEnter(Collider other)
{
    text.enabled = true;
}

或者,您可以直接使用ontriggerstay,而不是在update中轮询检查它,只要您敲击触发器,就会重复调用该命令

public Text text;
public Animator anim;

private void Start()
{
    text.enabled = false;
    anim = GetComponent<Animator>();
}

private void OnTriggerStay(Collider other)
{
    if (Input.GetKeyDown(KeyCode.E))
    {
        anim.Play("DoorOpen");
    } 
}

private void OnTriggerExit (Collider other)
{
    text.enabled = false;
}

private void OnTriggerEnter(Collider other)
{
    text.enabled = true;
}
 类似资料:
  • 我目前正在使用JavaFX ScrollBar控件,它本身运行良好-但是我对拖动拇指时的“动画”不满意。 更具体地说: 当我快速拖动拇指时,快速加速-拇指动画不会立即跟随,但有点“滞后”-当我停止拖动拇指时的相同行为。。。拇指真正开始/追上预定位置需要一秒钟的时间 这不是繁重的布局计算之类的问题,因为我只是单独渲染ScrollBar而没有任何内容。 是否有一些选项可以让这个“加速动画”/“滞后”消

  • 假设我有活动A和活动B,点击按钮后,我们可以从活动A转到活动B。但是我想要的是,单击按钮后,活动A的20%(右侧)仍然在屏幕上可见,活动B的100%是可见的,所以总屏幕分为活动A的20%和活动B的80%。当我单击20%可见活动A的任何地方时,我应该能够转到活动A。我如何在Android系统中实现这一点。

  • 手动动画 timeOffset一个很有用的功能在于你可以它可以让你手动控制动画进程,通过设置speed为0,可以禁用动画的自动播放,然后来使用timeOffset来来回显示动画序列。这可以使得运用手势来手动控制动画变得很简单。 举个简单的例子:还是之前关门的动画,修改代码来用手势控制动画。我们给视图添加一个UIPanGestureRecognizer,然后用timeOffset左右摇晃。 因为在动

  • 我在Swing和设置角色动画方面有一些问题,我有一个带有关键侦听器的JFrame,当用户点击时,它在这里调用我的JPanel方法 这个动画我的角色,但这么快,我们可以看到一个东西,我怎么才能看到动画?

  • 我有一段疯狂的代码。我如何用核心动画来制作动画,这样我的代码就少了很多?我已经找到了一些做“摆动”动画的代码,但那是3D的,我只想让视图左右移动,我不想让它在侧面反弹。

  • 动画剪辑 动画剪辑是 Unity 动画系统的核心元素。Unity 不仅支持从外部源导入动画,而且支持在编辑器的动画视图中创建和编辑动画(剪辑)。 从外部源导入动画 从外部源导入的动画剪辑可能包括: 动作捕捉工作室捕捉的人形动画 设计师通过外部 3D 程序(例如 3D Max 或 Maya)创建的动画 第三方的动画集合库(例如来自 Unity Asset store) 导入的单个时间线等分切割为多个

  • 类似这样,飘忽不定的感觉

  • 我想为我的工厂制作动画,就像材料设计原理中的这个例子,我意识到工厂里的图标有两个动画。一个是旋转共享图标,另一个是alpha动画同步。之后,另一个图标被替换。但当我为这个目标创建动画集时,整个晶圆厂旋转并消失,但我希望晶圆厂内的图标拍摄这个动画。我怎样才能创建这个动画?谢谢