2016-04-15 7 views
0

Ich kann meine Kameraoptionen nicht einstellen. Wenn ich das Spiel spiele und eine andere Szene lade, ändern sich die Kameraoptionen. Aber wenn ich für die gleiche Szene spiele, funktioniert es richtig !!! und die Konsole sagte:MissingComponentException unity2D

MissingComponentException: Es gibt keine ‚Kamera‘ an das „Canvas“ Spielobjekt, sondern ein Skript versucht, darauf zuzugreifen.

Sie müssen wahrscheinlich eine Kamera zum Spielobjekt "Canvas" hinzufügen. Oder Ihr Skript muss überprüfen, ob die Komponente, bevor Sie es angebracht ist „

Hier ist meine aktuelle Skript.

using UnityEngine; 
using System.Collections; 

public class PixelPerfectCamera : MonoBehaviour { 

    public static float PixelsToUnits = 1f; 
    public static float scale = 1f; 

    public Vector2 nativeResolution = new Vector2(400, 160); 


    void Awake() 
    { 

     var camera = GetComponent<Camera>(); 


     if (camera.orthographic) 
     { 
      scale = Screen.height/nativeResolution.y; 
      PixelsToUnits *= scale; 
      camera.orthographicSize = (Screen.height/2.0f)/PixelsToUnits; 
     } 
    } 
} 

Antwort

2

Sie nicht haben eine Kamera an der-gleichen Gameobject das PixelPerfectCamera Skript an.

Wenn es nur eine Kamera in der Szene ist, ändern

var camera = GetComponent<Camera>(); 

zu

Camera camera = Camera.main; //Use the main camera 

Wenn Sie mehr Kamera in der Szene hat, dann verwenden:

Camera camera = GameObject.Find("NameOfGameObjectCameraIsAttachedTo").GetComponent<Camera>(); //Use the main camera 

Sie müssen ÄnderungNameOfGameObjectCameraIsAttachedTo auf den Namen Gameobject dass Kamera angebracht ist. Um dies zu

0

Ihr Script ändern:

using UnityEngine; 
using System.Collections; 

public class PixelPerfectCamera : MonoBehaviour { 

    public static float PixelsToUnits = 1f; 
    public static float scale = 1f; 

    public Vector2 nativeResolution = new Vector2(400, 160); 
    public Camera camera; 

    void Awake() 
    { 
     if (camera.orthographic) 
     { 
      scale = Screen.height/nativeResolution.y; 
      PixelsToUnits *= scale; 
      camera.orthographicSize = (Screen.height/2.0f)/PixelsToUnits; 
     } 
    } 
} 

dann bringen Sie Ihre Kamera in der Szene zu dieser Kamera Feld des Skript.