1.在Hierarchy面板上新建一个Canvas。
2.在Project面板上新建文件夹Resources,把你想要加载的图片放在这里面。
3.刚加载进来的图片是不能用的需要把图片改成sprite格式,图片必须是sprite格式在unity的Image里才可以使用。点击图片在Inspector面板的Texture Type里将属性改成Sprite(2D and UI)。
修改之后图片会变成这个样子。
第一种方法是定义变量通过变量把图片赋值给Image组件。
注意:脚本里使用Image需要引入命名空间 using UnityEngine.UI;
定义一个Sprite类型的变量(如果图片多的话可以定义成数组)。
我是把脚本挂在了Canvas上,如果是挂在了Image组件上可以不定义Image变量直接用transform.GetComponent().sprite = sprites[0]; 来动态加载图片。
登录后复制
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class ImageDemo : MonoBehaviour {
public Sprite[] sprites;
public Image image;
// Use this for initialization
void Start () {
//把图片赋值给Image组件
image.sprite = sprites[0];
}
}
在Canvas下创建一个Image组件。
然后把图片和image组件拖进脚本。
运行之后的结果。
第二种方法是在文件夹里找到图片然后赋值给Image组件。
在Assets下创建一个名为Resources的文件夹(注意名字不要错不然会找不到图片),然后把图片放在这个文件夹里,同样需要把图片改成sprite格式。
在这里我是动态创建的Image对象并没有在Unity 编译器里创建Image。
登录后复制
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class ImageDemo : MonoBehaviour {
void Start () {
//创建一个Image对象
GameObject newImage = new GameObject("Image");
//把newImage对象变成Canvas对象的子节点对象
newImage.transform.SetParent(GameObject.Find("Canvas").transform);
//添加Image组件
newImage.AddComponent<Image>();
//动态加载贴图赋值给Image
newImage.GetComponent<Image>().sprite = Resources.Load<Sprite>("2");
}
}
运行结果,由于没有设计格式位置什么的所以它在左下角。动态创建的所以右边Canvas下多了一个Image。
也可以通过脚本去设置格式。
登录后复制
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class ImageDemo : MonoBehaviour {
void Start () {
//创建一个Image对象
GameObject newImage = new GameObject("Image");
//把newImage对象变成Canvas对象的子节点对象
newImage.transform.SetParent(GameObject.Find("Canvas").transform);
//添加Image组件
newImage.AddComponent<Image>();
//动态加载贴图赋值给Image
newImage.GetComponent<Image>().sprite = Resources.Load<Sprite>("2");
//将图片变成黑色而且改变透明度为50%
newImage.GetComponent<Image>().color = new Color(0, 0, 0, 0.5f);
//修改位置
newImage.GetComponent<RectTransform>().anchoredPosition = new Vector2(0.0f, 100.0f);
//修改旋转
newImage.GetComponent<RectTransform>().localRotation = Quaternion.Euler(new Vector3(0f, 180f, 0f));
//修改缩放
newImage.GetComponent<RectTransform>().localScale = new Vector3(1.2f, 1.2f, 1.2f);
//修改大小
newImage.GetComponent<RectTransform>().sizeDelta = new Vector2(200.0f, 200.0f);
}
}
设置格式后的结果。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删