我有一个教程场景,你通过关卡并到达某个门,当你碰到它时,它会禁用顶部的画布,并为门设置动画。我在Scripting Docs中到处搜索过,但无法找到解决方案。您声明要设置动画的对象是什么类型的变量?
我尝试声明public GameObject
/ Transform UIQuest
和UIQuest.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;
}
}
}
答案 0 :(得分:0)
由于游戏对象只是执行一个简单的动画,你不需要任何特殊的动画(例如AnimationController),你只需要随着时间的推移执行门的旋转,将门的枢轴设置到边缘并旋转当满足条件时(即,当检测到碰撞时)沿y轴的门。
类似的东西:
gameobject.transform.Rotate(0, rotationAmount * Time.DeltaTime, 0);
除非你想要一个旋转门口,否则你还需要逻辑来决定何时停止旋转(即当门完全打开时)。此外,如果门只是一扇推拉门,那么当您执行平移而不是旋转时,这就更容易了。