[DB-AL] 'Halo' is inaccessible due to its protection level
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
[DB-AL] 'Halo' is inaccessible due to its protection level
Salut à tous,
En bref, tout et dans le titre.
Je veux seulement pouvoir modifier la couleur ou la taille d'un halo déjà présent sur mon objet.
Seulement, il m'affiche ce message d'erreur lorsque j'écris dans le script :
gameObject.GetComponent("Halo");
Merci par avance de vos réponses.
En bref, tout et dans le titre.
Je veux seulement pouvoir modifier la couleur ou la taille d'un halo déjà présent sur mon objet.
Seulement, il m'affiche ce message d'erreur lorsque j'écris dans le script :
gameObject.GetComponent("Halo");
Merci par avance de vos réponses.
Re: [DB-AL] 'Halo' is inaccessible due to its protection level
Hello,
C'est un composant natif "Halo" ou bien une classe que tu as fait par toi-même ? Quel est le niveau de protection de ta classe "Halo" et de la classe qui contient cette ligne ?
L'erreur dit juste que tu ne peux pas accéder à la classe Halo car elle est protégé par sa visibilité. Il y a 3 "visibilité" :
- Public
- Internal
- Private (Si non-spécifié, c'est private)
En fonction du niveau de visibilité de tes deux classes, celle où tu viens de mettre la ligne qui fait l'erreur et la classe "Halo", il est possible que ça crée une erreur car l'un des deux classe n'est pas visible pour l'autre.
C'est un composant natif "Halo" ou bien une classe que tu as fait par toi-même ? Quel est le niveau de protection de ta classe "Halo" et de la classe qui contient cette ligne ?
L'erreur dit juste que tu ne peux pas accéder à la classe Halo car elle est protégé par sa visibilité. Il y a 3 "visibilité" :
- Public
- Internal
- Private (Si non-spécifié, c'est private)
En fonction du niveau de visibilité de tes deux classes, celle où tu viens de mettre la ligne qui fait l'erreur et la classe "Halo", il est possible que ça crée une erreur car l'un des deux classe n'est pas visible pour l'autre.
Re: [DB-AL] 'Halo' is inaccessible due to its protection level
Salut Simonj et merci pour ta réponse,
Pour ce qui concerne le 'Halo', je l'ai simplement ajouté en faisant "add component" sur Unity.
Est ce que en l'ajoutant de cette manière on ne peut pas le modifier ?
Si c'est le cas comment puis-je procéder ?
Pour ce qui concerne le 'Halo', je l'ai simplement ajouté en faisant "add component" sur Unity.
Est ce que en l'ajoutant de cette manière on ne peut pas le modifier ?
Si c'est le cas comment puis-je procéder ?
- boubouk50
- ModoGenereux
- Messages : 6215
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: [DB-AL] 'Halo' is inaccessible due to its protection level
Tu as la réponse ici en anglais: https://answers.unity.com/questions/931 ... -halo.html
De ce que j'ai compris, Halo dérive de Behaviour (et pas MonoBehaviour) donc de Component et est un type et pas une classe.
D'après la documentation officielle, les différentes utilisations de GetComponent () ne renvoient pas la même chose, et la fonction GetComponent (string) nécessite un cast, elle renvoie un Component, alors que l'autre renvoie un type. De plus, il est préférable d'utiliser le GetComponent <type> () pour des raisons de performances.
Donc:ou La première étant plus performante.
De ce que j'ai compris, Halo dérive de Behaviour (et pas MonoBehaviour) donc de Component et est un type et pas une classe.
D'après la documentation officielle, les différentes utilisations de GetComponent () ne renvoient pas la même chose, et la fonction GetComponent (string) nécessite un cast, elle renvoie un Component, alors que l'autre renvoie un type. De plus, il est préférable d'utiliser le GetComponent <type> () pour des raisons de performances.
Donc:
Code : Tout sélectionner
gameObject.GetComponent<Halo>();
Code : Tout sélectionner
(Behaviour)gameObject.GetComponent ("Halo");
"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: [DB-AL] 'Halo' is inaccessible due to its protection level
Re, j'ai testé les différents codes mais j'ai soit le même résultat, soit cette erreur :
'Component' does not contain a definition for 'Size' and no extension method 'Size' accepting a first argument of type 'Component' could be found (are you missing a using directive or an assembly reference?)
Voici mon code, je pense que cela aidera à trouver le problème :
'Component' does not contain a definition for 'Size' and no extension method 'Size' accepting a first argument of type 'Component' could be found (are you missing a using directive or an assembly reference?)
Voici mon code, je pense que cela aidera à trouver le problème :
Code : Tout sélectionner
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Holo2 : MonoBehaviour {
Component Halo;
public float HaloSize;
void Start () {
Halo = (Behaviour)gameObject.GetComponent("Halo");
HaloSize = Halo.Size;
}
void Update()
{
if (Input.GetKeyDown("c"))
{
HaloSize = 1;
}
if (Input.GetKeyDown("d"))
{
HaloSize = 0;
}
}
}
Re: [DB-AL] 'Halo' is inaccessible due to its protection level
Bonsoir,
tu ne pourras pas accéder aux propriétés de 'Halo' (comme pour la couleur que tu souhaitais changer, si j'ai bien compris)
Halo est une classe dérivé de Behaviour (comme souligné plus haut) et est internal.
Tes seuls changement ne peuvent donc se faire que par le biais de l'inspector. Tu peux aussi changer le shader (dans les Graphic setting). Pour des actions par script en runtime, pas sûr que cela t'aide beaucoup.
tu ne pourras pas accéder aux propriétés de 'Halo' (comme pour la couleur que tu souhaitais changer, si j'ai bien compris)
Halo est une classe dérivé de Behaviour (comme souligné plus haut) et est internal.
Tes seuls changement ne peuvent donc se faire que par le biais de l'inspector. Tu peux aussi changer le shader (dans les Graphic setting). Pour des actions par script en runtime, pas sûr que cela t'aide beaucoup.
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
Re: [DB-AL] 'Halo' is inaccessible due to its protection level
OK, c'est ce que je pensais aussi.
C'est un peu dommage, car j'en aurai bien eu besoin pour faire une sorte d'hologramme avec un halo autour.
Vous n'auriez pas une autre idée pour faire l'aspect de surbrillance ?
(Ou bien un site ou une vidéo à me conseiller)
C'est un peu dommage, car j'en aurai bien eu besoin pour faire une sorte d'hologramme avec un halo autour.
Vous n'auriez pas une autre idée pour faire l'aspect de surbrillance ?
(Ou bien un site ou une vidéo à me conseiller)
Re: [DB-AL] 'Halo' is inaccessible due to its protection level
je t'avoue que ne j'ai jamais trop compris ce choix technique de la par d'UT concernant ce speudo composant. Pourtant il doit bien y avoir une raison
Tu as un exemple pour mieux comprendre ? Tu fais allusion à quelque chose qui s’apparenterait au Glow ?
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
Re: [DB-AL] 'Halo' is inaccessible due to its protection level
À vrai dire j'aimerais trouver un moyen de faire une sorte d'hologramme qui clignote (d'où le changement de taille ou de couleur du halo ) mais vu que l'on ne peut le modifier avec un script, je souhaiterais quelque de similaire à un halo.
(comme une sorte de brouillard lumineux autour de lui, pas comme le shader glow qui ne fait que rendre la texture plus lumineuse)
(comme une sorte de brouillard lumineux autour de lui, pas comme le shader glow qui ne fait que rendre la texture plus lumineuse)