[C#] Camera Layer : cacher des objets à une distance donnée
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
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
[C#] Camera Layer : cacher des objets à une distance donnée
Bonjour
Dans le but d'optimiser mes maquettes routières, je cherche à commencer à ne voir mes véhicules , par exemple, qu'à partir de 800 m de ma caméra principale.
Je sais utiliser le culing mask mais je ne sais qu' Afficher / Masquer le layer contenant mes véhicules.
Mes véhicules sont dans le layer VEHICULE.
Comment faire pour ne les voir qu'à partir de 800 m ?
Merci
Dans le but d'optimiser mes maquettes routières, je cherche à commencer à ne voir mes véhicules , par exemple, qu'à partir de 800 m de ma caméra principale.
Je sais utiliser le culing mask mais je ne sais qu' Afficher / Masquer le layer contenant mes véhicules.
Mes véhicules sont dans le layer VEHICULE.
Comment faire pour ne les voir qu'à partir de 800 m ?
Merci
- boubouk50
- ModoGenereux
- Messages : 6243
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: Camera :ne pas voir des objets à une distance donnée
Je connais la propriété LayerCullingDistance, mais je ne sais pas s'il est accessible via l'Inspector.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Re: Camera :ne pas voir des objets à une distance donnée
Merci
le code prend les transform de la camera principle ( je l'ai mis dessus) et crée, si j'ai compris" 32 petites distances".
Mais comment affecter une distance à un objet, quelle distance et comment définir cette distance ( exemple 800 m ) ?
En vérifiant l'onglet culing mask , je ne vois rien de plus
le code prend les transform de la camera principle ( je l'ai mis dessus) et crée, si j'ai compris" 32 petites distances".
Mais comment affecter une distance à un objet, quelle distance et comment définir cette distance ( exemple 800 m ) ?
En vérifiant l'onglet culing mask , je ne vois rien de plus
Code : Tout sélectionner
using UnityEngine;
using System.Collections;
public class LayerDistance : MonoBehaviour {
void Start() {
Camera camera = GetComponent<Camera>();
float[] distances = new float[32];
distances[10] = 15;
camera.layerCullDistances = distances;
}
}
- boubouk50
- ModoGenereux
- Messages : 6243
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: Camera :ne pas voir des objets à une distance donnée
Tu as copier/coller le code de l'exemple de la doc sans chercher à comprendre, sérieusement. En réfléchissant un petit peu, même sans lire l'explication qui est donnée, ça saute aux yeux.
Tu définis un tableau de 32 cases correspondants aux 32 layers disponibles sur la camera.
distances[10] équivaut à ton layer n°10 (il me semble qu'ils commencent à 0), donc la distance que tu mets dedans vaudra comme la valeur de far clip pour ce layer. Donc tu peux définir un far clip différent pour chaque layer.
camera.layerCullDistances = distances; lui te permet d'assigner ces changements à la caméra. Les cases non-renseignées ne seront pas prises en compte et les layers associés utiliseront le far clip de la caméra.
Tu définis un tableau de 32 cases correspondants aux 32 layers disponibles sur la camera.
distances[10] équivaut à ton layer n°10 (il me semble qu'ils commencent à 0), donc la distance que tu mets dedans vaudra comme la valeur de far clip pour ce layer. Donc tu peux définir un far clip différent pour chaque layer.
camera.layerCullDistances = distances; lui te permet d'assigner ces changements à la caméra. Les cases non-renseignées ne seront pas prises en compte et les layers associés utiliseront le far clip de la caméra.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Re: Camera :ne pas voir des objets à une distance donnée
Non non j ai essayé mais je me suis planté dans la compréhension.
Merci de tes explications
Merci de tes explications
Re: Camera :ne pas voir des objets à une distance donnée
Bonjour
J'ai bien suivi les directives.
J'ai mes 32 layers.
Celui sur lequel je veux agir est "vehicule"
j'ai bien indiqué le layer 15 et la distance 100m
Mais cela ne fonctionne pas
J'ai bien suivi les directives.
J'ai mes 32 layers.
Celui sur lequel je veux agir est "vehicule"
j'ai bien indiqué le layer 15 et la distance 100m
Mais cela ne fonctionne pas
Code : Tout sélectionner
using UnityEngine;
using System.Collections;
public class LayerDistance : MonoBehaviour {
void Start() {
Camera camera = GetComponent<Camera>();
float[] distances = new float[32];
distances[15] = 100;
camera.layerCullDistances = distances;
}
}
Re: Camera :ne pas voir des objets à une distance donnée
Je m'en suis servis exactement comme ça il y a quelques mois...
si aucune erreur n'est dans la consoles, 2 erreurs possibles:
- tu a oublié d'attacher ce script à ta camera
- tu a oublié de mettre tes gameObject de véhicules dans ton layer 15
si aucune erreur n'est dans la consoles, 2 erreurs possibles:
- tu a oublié d'attacher ce script à ta camera
- tu a oublié de mettre tes gameObject de véhicules dans ton layer 15
____________________________________________
Hop Boy
Hop Boy
- artemisart
- Messages : 1893
- Inscription : 21 Juin 2011 19:51
- Localisation : Centre
- Contact :
Re: Camera :ne pas voir des objets à une distance donnée
Ça commence à 0, donc logiquement le 15ème layer est le layer n°14 : distances[14] = 100;
Afficher le tableau de distances dans l'inspector pourrait être pratique aussi...
Afficher le tableau de distances dans l'inspector pourrait être pratique aussi...
- boubouk50
- ModoGenereux
- Messages : 6243
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: Camera :ne pas voir des objets à une distance donnée
Les layers aussi commencent à 0 donc logiquement distances[0] est le layer 0, donc distances[15] est le layer 15
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Re: Camera :ne pas voir des objets à une distance donnée
J'ai trouvé.
Pour les layers , c'est boubouk50 qui a raison.
Je faisais mes modification de distance dans le script en live, game lancé.
Et par rapport à d'autres scripts, les modif ne sont pas prises en compte.
Il faut à chaque modif de distance, lancer le game pour voir le résultat.
Merci à tous
Pour les layers , c'est boubouk50 qui a raison.
Je faisais mes modification de distance dans le script en live, game lancé.
Et par rapport à d'autres scripts, les modif ne sont pas prises en compte.
Il faut à chaque modif de distance, lancer le game pour voir le résultat.
Merci à tous