problème de taille de sprite dans un canvas
problème de taille de sprite dans un canvas
Bonjour,
je tente de créé un inventaire.
J'ai donc créé un canvas dans lequel j'ai placé un panel qui contient 2 panel:
un dans lequel je place l'inventaire et un dans lequel je place la description des objets.
Mais étrangement toutes les images s'affichant dans le premier panel et donc dans le canvas ont leur taille qui semble diminué de moitié
je tente de créé un inventaire.
J'ai donc créé un canvas dans lequel j'ai placé un panel qui contient 2 panel:
un dans lequel je place l'inventaire et un dans lequel je place la description des objets.
Mais étrangement toutes les images s'affichant dans le premier panel et donc dans le canvas ont leur taille qui semble diminué de moitié
Re: problème de taille de sprite dans un canvas
Bonsoir,
avec des éléments aussi précis, je ne pense pas pouvoir t'aider beaucoup. Quelques éléments cependant :
avec des éléments aussi précis, je ne pense pas pouvoir t'aider beaucoup. Quelques éléments cependant :
- Comment est configuré le Canvas, en particulier l'UI Scale Mode dans la section Canvas Scaler ?
- Les sprites ont quel Texture Type ?
- Quelle est la taille réelle des sprites (la taille du fichier png ou équivalent) ? Et quel est le pixels per unit ?
De moitié par rapport à quoi ?les images ... ont leur taille qui semble diminué de moitié
Re: problème de taille de sprite dans un canvas
Bonsoir et merci de m'avoir répondu
UI Scale Mode : Scale with Screen Size
Reference resolution : x : 1920 y :1080
Screen match mode : Expand
Reference pixels per unit : 32
Une fois importer dans unity :
Texture type : Sprite (2D and UI)
Pixel per unit : 32
Filter mode : point (no filter)
Compression : none
Canvas scaler :Comment est configuré le Canvas, en particulier l'UI Scale Mode dans la section Canvas Scaler ?
UI Scale Mode : Scale with Screen Size
Reference resolution : x : 1920 y :1080
Screen match mode : Expand
Reference pixels per unit : 32
Les sprites ont quel Texture Type ?
Concernant les Sprites se sont des png réalisé avec aseprite de taille 32x32 pixelQuelle est la taille réelle des sprites (la taille du fichier png ou équivalent) ? Et quel est le pixels per unit ?
Une fois importer dans unity :
Texture type : Sprite (2D and UI)
Pixel per unit : 32
Filter mode : point (no filter)
Compression : none
Par exemple une sprite de 32x32 pixel une fois ajouté sur le panel aurait l’air de mesurer 16x16De moitié par rapport à quoi ?
Re: problème de taille de sprite dans un canvas
Je pense qu'en passant le pixel per unit à 16 cela pourrait résoudre ton souci. Je ne vérifie pas, je suis en train d'éteindre mon PC.
Re: problème de taille de sprite dans un canvas
non aucun changement
Re: problème de taille de sprite dans un canvas
Désolé, j'ai été un peu rapide dans ma réponse. Je parlais du pixel per unit des images. Il faut faire Apply après le changement.
Re: problème de taille de sprite dans un canvas
C'est ce que j'ai fait mais pas de changement
Par contre, j'utilise le script suivant pour placer les objet dans l'inventaire
Le problème peut il venir de là ?
(la classe "PlayerInventory" est sert simplement à créé une liste dans laquelle sont placé les objets qui sont des scriptable objets)
Par contre, j'utilise le script suivant pour placer les objet dans l'inventaire
Le problème peut il venir de là ?
(la classe "PlayerInventory" est sert simplement à créé une liste dans laquelle sont placé les objets qui sont des scriptable objets)
Code : Tout sélectionner
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class InventoryManager : MonoBehaviour
{
[Header("Inventory Information")]
public PlayerInventory playerInventory;
[SerializeField] private GameObject blankInventorySlot;
[SerializeField] private GameObject inventoryPanel;
[SerializeField] private Text descriptionText;
[SerializeField] private GameObject useButton;
public void SetTextAndButton(string description, bool buttonActive)
{
descriptionText.text = description;
if (buttonActive)
{
useButton.SetActive(true);
}
else
{
useButton.SetActive(true);
}
}
void MakeInventorySlots()
{
if(playerInventory)
{
for(int i = 0; i < playerInventory.myInventory.Count;i++)
{
GameObject temp =
Instantiate(blankInventorySlot,
inventoryPanel.transform.position, Quaternion.identity);
temp.transform.SetParent(inventoryPanel.transform);
InventorySlot newSlot = temp.GetComponent<InventorySlot>();
if(newSlot)
{
newSlot.Setup(playerInventory.myInventory[i], this);
}
}
}
}
// Start is called before the first frame update
void Start()
{
MakeInventorySlots();
SetTextAndButton("", false);
}
// Update is called once per frame
void Update()
{
}
}
Re: problème de taille de sprite dans un canvas
Bonsoir,
je ne vois rien d'anormal dans le script. Vérifie bien le scale de ton prefab blankInventorySlot et du parent inventoryPanel.
Et si tu places un sprite directement sur le canvas ? Et un Slot vide avec un prefab ?
Tu utilises un Grid Layout Group peut-être ?
je ne vois rien d'anormal dans le script. Vérifie bien le scale de ton prefab blankInventorySlot et du parent inventoryPanel.
Et si tu places un sprite directement sur le canvas ? Et un Slot vide avec un prefab ?
Tu utilises un Grid Layout Group peut-être ?
Re: problème de taille de sprite dans un canvas
Bonsoir,
j'ai vérifié tous les scale et elles sont toutes à 1 sauf celle du canvas est qui est grisé et donc impossible a modifié avec X:0.50277 Y:0.50277 Z:0.50277
et si je place un sprite directement dans le canvas ou le panel, il est de taille normal
J'utilise un "grid layout group" dans le contente du viewport
Architecture:
PauseCanvas
-PausePanel
--InventoryImage
---Scroll View
----viewport
-----Content
----scroollbar horizontal
----scroollbar vertcial
--Description image
Grid Layout group:
Padding:
left 16
right 16
top 16
bottom16
celle size x:32 y:32
spacing x:16 y:16
start corner: UpperLeft
start axis: horizontal
child aligment: middle center
constraint: flexible
j'ai vérifié tous les scale et elles sont toutes à 1 sauf celle du canvas est qui est grisé et donc impossible a modifié avec X:0.50277 Y:0.50277 Z:0.50277
et si je place un sprite directement dans le canvas ou le panel, il est de taille normal
J'utilise un "grid layout group" dans le contente du viewport
Architecture:
PauseCanvas
-PausePanel
--InventoryImage
---Scroll View
----viewport
-----Content
----scroollbar horizontal
----scroollbar vertcial
--Description image
Grid Layout group:
Padding:
left 16
right 16
top 16
bottom16
celle size x:32 y:32
spacing x:16 y:16
start corner: UpperLeft
start axis: horizontal
child aligment: middle center
constraint: flexible
Re: problème de taille de sprite dans un canvas
Si un sprite posé directement sur la canvas a une taille normale, il est possible que le paramétrage du layout soit incorrect. J'ai rouvert un de mes essais d'inventaire,, et mon grid layout a pour taille de cellule 96 x 96. As-tu essayé de modifier cette valeur ?