Jump to content
Unity Insider Forum

Werte der CinemachineVirtualCamera per Skript ändern


STU

Recommended Posts

Hi zusammen,

ich möchte dass sich die Einstellungen meiner Cinemachine bei bestimmten erreignissen ändert. Leider funktioniert das irgendwie nicht. Wie müsste das aussehen wenn ich z.B. den Skreen X Wert ändern möchte, wenn mich eine Person anspricht.

if (talk == true)
        { ...

Vielen Dank

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo

 

Ich weiß nicht, was der "Skreen X" Wert ist, aber die orthographische Größe kann man beispielsweise so ändern:

 

_camera.m_Lens.OrthographicSize = _newOrthographicSize;

 

vorher scheibst du noch:

[SerializeField] private CinemachineVirtualCamera _camera = default;

und weißt es im editor entsprechend zu.

 

Christoph

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

danke erstmal für die Antwort. Leider kommt bei mir immer wieder dieser Fehler wenn ich versuche die Cinemachine ein zu binden.

Assets\Skript\CameraManager.cs(9,30): error CS0246: The type or namespace name 'CinemachineVirtualCamera' could not be found (are you missing a using directive or an assembly reference?)

Viele Grüße

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Joa, wie die Fehlermeldung sagt: Dir fehlt vermutlich eine using-Direktive oder ein Assembly-Verweis. Hast du die using-Direktive? Müsste so aussehen, glaube ich:

using Cinemachine;

Einen Assembly-Verweis bräuchtest du nur, wenn du im Projekt Assembly Definitions benutzt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

SUPER!!!

das hat schon mal funktioniert. Ich bin noch ziemlicher Anfänger ;)

Jetzt würde ich gerne wie oben beschrieben den "Screen X" Wert ändern.

grafik.png.a811565bdf017acabad7893a81a5c32d.png

Ich hätte jetzt so angefangen. Nur komme ich da jetzt nicht weiter.

gameObject.GetComponent<CinemachineVirtualCamera>()

Gruß

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 weeks later...

Hi,

das mit OrthographicSize funktioniert schon mal ganz gut. Ich würde dazu gerne die Kamera noch in X verschieben. Habe es über transform.position probiert. Das funktioniert aber leider nicht. Ich vermute mal da die Cinemachine meinen Charakter ja mittig ausrichtet und ich immer noch keine Variante gefunden habe wie ich diesen ScreenX Wert per Skript ändern kann. Gibt es noch irgend eine andere Möglichkeit?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hab mit dem Teil noch nie was gemacht aber probier mal so:

 CinemachineVirtualCamera virtualCamera = GetComponent<CinemachineVirtualCamera>();
 CinemachineFramingTransposer framingTransposer = virtualCamera.GetCinemachineComponent<CinemachineFramingTransposer>();
 framingTransposer.m_ScreenX = 0.5f;

siehe https://docs.unity3d.com/Packages/com.unity.cinemachine@2.1/api/Cinemachine.CinemachineFramingTransposer.html

Link zu diesem Kommentar
Auf anderen Seiten teilen

😲

vielen vielen Dank. Das hat mich schon die ganze Zeit genervt.

Vielleicht kannst du mir auch noch bei einem anderen Problem helfen? Ich habe ein Objekt mir einem Boxcollider. Wenn ich darauf springe kann ich von dort aus weiter springen. Wenn ich nun diese Objekt mit Strg + D kopiere, dann sollte es doch komplett gleich sein? Ist es aber anscheined nicht. Ich kann darauf springen und laufen, wenn ich aber von dort wegsprinngen möchte geht das nicht. Ich bleibe auf der Stelle und die animation Springen beginnt und läuft dann die ganze Zeit über weiter. Woran kann das liegen? Vor allem hat es vorher schonmal funktioniert.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Schwer zu sagen, tausch das Original (+ Ausblenden) mal mit der Kopie aus und setze es an die exakt gleiche Transform-Position und an die gleiche Position in der Hierarchie in der Szene. Wenn es sich dann gleich wie das Original verhält liegt es ggf. daran.

Ansonsten kann das Objekt natürlich auch irgendwo in deiner Szene referenziert sein (Parameter von einem Skript) und wenn du eine Kopie machst fehlt diese Referenz dann.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...