声明gameObject为动画

时间:2015-12-01 03:12:14

标签: c# animation unity3d unity5

我有一个教程场景,你通过关卡并到达某个门,当你碰到它时,它会禁用顶部的画布,并为门设置动画。我在Scripting Docs中到处搜索过,但无法找到解决方案。您声明要设置动画的对象是什么类型的变量?

我尝试声明public GameObject / Transform UIQuestUIQuest.Animation.Play("DoorOpen"),但是它出现了错误,即API中没有Animation。我只是这样做完全错了,还是有一些简单的我错过了?

完整的脚本:

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class DoorOpen : MonoBehaviour {

    public GameObject door;

    public Canvas UIQuest;

    void Start () {

    }

    void Update () {

    }

    void OnCollisionEnter(Collision doorCollision)
    {
        if (doorCollision.gameObject.name == "Door")
        {
            door.Animation.Play("DoorOpen");
            UIQuest.enabled = false;
        }
    }
}

1 个答案:

答案 0 :(得分:0)

由于游戏对象只是执行一个简单的动画,你不需要任何特殊的动画(例如AnimationController),你只需要随着时间的推移执行门的旋转,将门的枢轴设置到边缘并旋转当满足条件时(即,当检测到碰撞时)沿y轴的门。

类似的东西:

gameobject.transform.Rotate(0, rotationAmount * Time.DeltaTime, 0);

除非你想要一个旋转门口,否则你还需要逻辑来决定何时停止旋转(即当门完全打开时)。此外,如果门只是一扇推拉门,那么当您执行平移而不是旋转时,这就更容易了。