[RESOLU] Déplacement caméra

Pour les scripts écrits en C#
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
cortoh
Messages : 159
Inscription : 22 Nov 2014 23:05

[RESOLU] Déplacement caméra

Message par cortoh » 20 Mars 2021 12:13

Bonjour,
Je viens de suivre et reproduire exactement un vieux tuto sur YouTube mais j'ai une erreur et je ne comprend pas ce que c'est.
Je n'est pas touché à Unity depuis longtemps j'ai peut-être manqué quelque chose d'évident.
Pourriez vous me dire ce qui ne va pas.
Merci

NullReferenceException: Object reference not set to an instance of an object
CameraController.LateUpdate () (at Assets/CameraController.cs:45)

Voici le script que j'ai reproduit à l'identique:

Code : Tout sélectionner

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CameraController : MonoBehaviour {

	public Transform[] views;
	public float transitionSpeed; 
	Transform currentView;

	// Use this for initialization
	void Start () {


	}

	void Update(){

		if (Input.GetKeyDown (KeyCode.Alpha1)) {
			currentView = views [0];
		}

		if (Input.GetKeyDown (KeyCode.Alpha2)) {
			currentView = views [1];
		}

		if (Input.GetKeyDown (KeyCode.Alpha3)) {
			currentView = views [2];
		}

		if (Input.GetKeyDown (KeyCode.Alpha4)) {
			currentView = views [3];
		}

		if (Input.GetKeyDown (KeyCode.Alpha5)) {
			currentView = views [4];
		}

	}


	void LateUpdate () {

		//Lerp position
		transform.position = Vector3.Lerp(transform.position, currentView.position, Time.deltaTime * transitionSpeed);

		Vector3 currentAngle = new Vector3 (
			Mathf.LerpAngle(transform.rotation.eulerAngles.x, currentView.transform.rotation.eulerAngles.x, Time.deltaTime * transitionSpeed),
			Mathf.LerpAngle(transform.rotation.eulerAngles.y, currentView.transform.rotation.eulerAngles.y, Time.deltaTime * transitionSpeed),
			Mathf.LerpAngle(transform.rotation.eulerAngles.z, currentView.transform.rotation.eulerAngles.z, Time.deltaTime * transitionSpeed));

		transform.eulerAngles = currentAngle;

	}
}

Avatar de l’utilisateur
Max
Messages : 8242
Inscription : 30 Juil 2011 13:57
Contact :

Re: Déplacement caméra

Message par Max » 20 Mars 2021 12:27

Bonjour,

je dirais que ton currentView est null au départ. Donc quand tu lances le programme, normal qu'au sein du LateUpdate tu ais une erreur. Il faut que tu inities, dans le Start par exemple, currentView, avec par exemple views[0].
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

cortoh
Messages : 159
Inscription : 22 Nov 2014 23:05

Re: Déplacement caméra

Message par cortoh » 20 Mars 2021 16:17

Oui c'est exactement ça et c'est effectivement évident :oops:
Merci beaucoup :super:

Répondre

Revenir vers « (C#) CSharp »