2013-05-06 7 views
1

Je commence mon projet et j'ai eu cette erreur ne peut pas comprendre ce qui ne va pas avec elle. Vraiment appreaciate aide et désolé si c'est une question stupide. Je suis encore nouveau à l'unité. Merci pour toutes les réponses.unité erreur 3d comment y remédier

J'ai essayé de chercher de l'aide sur ce vecteur2 (largeur, hauteur) mais pour moi, tout va bien. Et aussi si quelqu'un peut m'expliquer s'il vous plaît à propos de ce problème rect.center pourquoi l'ai-je eu?

Unity3d Erreur:

Assets/Scenes/Game/Scripts/GUI/GameGUI.cs(22,22): error CS1061: Type `UnityEngine.Rect' does not contain a definition for `center' and no extension method `center' of type `UnityEngine.Rect' could be found (are you missing a using directive or an assembly reference?) 

code:

using UnityEngine; 
using System.Collections; 

public class GameGUI : MonoBehaviour { 


    void OnResume() { 
     enabled = true; 
    } 

    void OnPause() { 
     enabled = false; 
    } 


    void OnGUI() { 
     int fps = (int) (1f/Time.deltaTime*Time.timeScale); 
     GUILayout.Box("FPS "+fps); 

     Vector2 size = GUI.skin.label.CalcSize(new GUIContent("+")); 
     Rect rect = new Rect(0, 0, size.x, size.y); 
     rect.center = new Vector2(Screen.width, Screen.height)/2f; 
     GUI.Label(rect, "+"); 
    } 


} 

Merci pour votre temps.

+0

Le problème n'est pas avec Vector2. L'erreur indique que la classe Rect n'a pas de variable appelée centre. Cependant, il a cela (http://docs.unity3d.com/Documentation/ScriptReference/Rect-center.html). Peut-être que le message d'erreur indique qu'il vous manque une référence? Avez-vous également essayé de cliquer avec le bouton droit sur le nom de la classe Rect, puis de choisir "Aller à la définition", pour voir si cette variable est présente dans la classe? Peut-être que vous utilisez une ancienne version de Unity, avez-vous essayé de vérifier cela? – Renan

+0

J'ai créé une classe de test GameGUI sous Unity 3.5.6 et elle compile sans erreur. Doit être un réglage. Etrange – Kay

+0

Hmm, la version de ma mine est 3.2 je pense. J'utilise UniScite donc je n'ai pas une fonction telle que "Aller à la définition". – karolis

Répondre

2

La propriété center a été introduite dans Unity 3.5 selon Unity's Script Reference History page.. Donc, vous devez calculer le centre par vous-même. Peut-être votre constructeur devrait ressembler à quelque chose comme ceci:

Rect rect = new Rect(Screen.width/2f, Screen.height/2f, size.x, size.y); 
+0

"La propriété du centre a été introduite dans Unity 3.5 selon" Ouais je pense que c'est le cas, merci pour votre réponse. J'ai essayé votre chemin avec: 'codeRect rect = nouveau Rect (Screen.width/2f, Screen.width/2f, taille.x, size.y);' Il dosen't travaillé. – karolis

+0

Oups, le deuxième paramètre doit être 'Screen.height/2f' au lieu de' Screen.width/2f'. J'ai mis à jour ma réponse. – Kay

+0

+1 Belle prise. Je souhaite que la référence de script Unity ait une liste déroulante de révision. – Jerdak

Questions connexes