Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
  • Help Room /
avatar image
0
Question by AlbinoStoic · Apr 28, 2016 at 01:00 PM · c#uicanvasimageui image

Scaling an image sent to UI Image

Disclaimer: I have already looked at similar questions , and the wiki entry for TextureScale.cs ; and found no solutions that worked so far.

Objective
- 64 wide by 128 tall container holding a
- middle center 64x64 image, or 32x32 image, or 128x128 image...

Logical steps required
- Load copy or clone original Texture (varying sizes)
- Determine the ratio for scaling the X and Y of image
- use Texture2D.Resize or similar, or draw scaled image

Current Code

 void DrawItem(string imagecanvas, Texture2D texture) {
 // Make a copy of the item's icon.
 Texture2D temp = Instantiate(texture) as Texture2D;
 
 // Find largest axis and clamp both.
 float ratioW = 256 / (float)temp.width;
 float ratioH = 256 / (float)temp.height;
 float ratio;
 
 ratio = (ratioH<ratioW?ratioH:ratioW);
 
 // Apply calculated ratios
 temp.Resize( (int)(temp.width*ratio), (int)(temp.height*ratio) );
 
 // place Sprite back in Canvas
 Vector2 p = new Vector2(0.5f, 0.5f);
 Sprite sprite = Sprite.Create(temp, new Rect(0, 0, temp.width, temp.height), p);
 GameObject.Find(imagecanvas).GetComponent<Image>().sprite = sprite;
 }

Current Behaviour
- Depending on the size of the texture handed to it, the area either has no texture drawn (entirely transparent) ; or it's nowhere near centered / in the Rect bounds as given by the parent Image.

EDIT : Updated the code and issue above.

EDIT : I've also tried creating runtime Materials with the mainTexture set via SetTexture(0, texture); mainTexture = texture; still no go. It simply doesn't change, the original sprite / texture is all that's shown now.

Now it's refusing to update at all when changed at Runtime!

Canvas is garbage! I'm going back to OnGUI and DrawRect :(.


Edit If you use only RawImage in the Canvas, it finally listens to the changes to the Texture property (via .texture = texture) ; but I cannot resize this texture, the exact same thing happens (it expects the texture I give it be larger than the area I want to draw on, which can't be done if I'm resizing it down...)

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

0 Replies

· Add your reply
  • Sort: 

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

160 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

How to move a UI Image in the z axis? 2D 0 Answers

Hotbar appears when a certain gameobject is selected? 1 Answer

Unity 5 change source image of UI image c# script 2 Answers

Change Canvas Image from Another Script 1 Answer

Non-root Canvases will not be scaled: My UI has disappeared 2 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges