【问题标题】:Unity - Unexpected Symbol ";" in class, struct or interface member declarationUnity - 意外符号“;”在类、结构或接口成员声明中
【发布时间】:2014-05-29 01:35:03
【问题描述】:

有一个小问题。我正在使用 SpriteFactory 修改我的一个项目,并使用了一个 youtube,其代码与他完全相同,但遇到以下错误:

using UnityEngine;
using System.Collections;
using SpriteFactory;
public class Running : MonoBehaviour {

private SpriteFactory.Sprite;

// Use this for initialization
void Start () {
    sprite = GetComponent<Sprite> ();
    }

// Update is called once per frame
void Update () {
if(Input.GetKey(KeyCode.RightArrow)) {
        Sprite.Play("Run");
        Vector3 pos = transform.position;
        pos.x += Time.deltaTime * 2;
        transform.position = pos;
        }
    else{
        sprite.Stop();
}
}
}

导致的错误是意外符号“;”在我所知道的类、结构或接口成员声明中:

private SpriteFactory.Sprite;

但我什至不知道为什么?建议

【问题讨论】:

  • SpriteFactory.Sprite后面需要一个变量名
  • 您好,感谢您的回复。我现在添加了一个变量,但它提出了 'Sprite is an ambiguous reference between 'UnityEngine.Sprite' 和 'SpriteFactory.Sprite'.?

标签: c# unity3d


【解决方案1】:

给你:)

using UnityEngine;
using System.Collections;
// below solved conflict of class names
// we won't "using" whole SpriteFactory namespace because
// both UnityEngine and SpriteFactory have got same class "Sprite"
// so we pull out only needed class
using FactorySprite = SpriteFactory.Sprite;
public class Running : MonoBehaviour {

   // you forgot to set name of variable representing your sprite
   private FactorySprite sprite;

   // Use this for initialization
   void Start () {
      sprite = GetComponent<FactorySprite> (); // Edited
   }

  // Update is called once per frame
  void Update () {
     if(Input.GetKey(KeyCode.RightArrow)) {
        sprite.Play("Run"); // heh, remember C# is case sensitive :)
        Vector3 pos = transform.position;
        pos.x += Time.deltaTime * 2;
        transform.position = pos;
     }
     else{
        sprite.Stop();
     }
  }
}

【讨论】:

  • 感谢您的回复。不幸的是,现在出现了另一个错误:“Sprite is an ambiguous reference between 'UnityEngine.Sprite' and 'SpriteFactory.Sprite'.
  • 我编辑了代码,现在试试,如果不起作用,请告诉我们;)
  • 嗨,非常感谢您的帮助,但是,在 (11,26) 上出现了另一个错误,如下所示:Type 'UnityEngine.Sprite' must be convertible to 'UnityEngine.Component' in为了将其用作方法“UnityEngine.Component.GetComponent()”的泛型类型中的参数“T”
  • 嗨,现在想想这只是最后一个错误,说“UnityEngine.Sprite”不包含“Play”的定义
  • 你可以告诉我一个完整的通知。非常感谢您的帮助 =)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-02
  • 2020-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多