所以我使用SpriteFactory
构建了攻击,并且只想将键盘字母 A 指定为默认攻击。我使用GetKeyUp
的唯一目的是让角色进行一次攻击,而不是多次像循环(即GetKeyDown
)。在这个阶段,我没有包括任何敌人或任何东西,因为我只想让角色在我按 A 时简单地攻击。我已经包含了游戏对象并添加了Attack.cs
但没有成功。也许我完全忽略了我正在做的事情,但是在正确的方向上的一些帮助将会受到赞赏。
using UnityEngine;
using System.Collections;
public class Attack : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
if(Input.GetKeyUp(KeyCode.A)) {
}
}
}
好的,所以我尝试了以下方法。调整了代码如下:
using UnityEngine;
using System.Collections;
using FactorySprite = SpriteFactory.Sprite;
public class Attack : MonoBehaviour {
// you forgot to set name of variable representing your sprite
private FactorySprite sprite;
// Use this for initialization
void Start () {
sprite = GetComponent<FactorySprite> (); // Edited
}
void Update ()
{
if(Input.GetKeyUp(KeyCode.A))
{
sprite.Play("Attack");
}
}
}
但现在有一个&#39; nullReferenceError&#39;&#39;对象引用未设置为即时对象?
答案 0 :(得分:0)
您必须在循环中添加yourSprite.Play("AnimationName");
:
void Update ()
{
if(Input.GetKeyUp(KeyCode.A))
{
yourSprite.Play("AnimationName");
}
}
为此,您必须使用GetComponent()
将精灵的引用添加到脚本中
顺便说一句,GetKeyDown
只针对每次按键触发一次,你也可以使用它。 (GetKey()
会触发每一帧)