Unity脚本获取iOS相册授权照片的实现

Unity 通过脚本控制Image组件

1.在Hierarchy面板上新建一个Canvas。

Unity 获取IOS相册 授权选中的照片 unity脚本获取image组件_Image

2.在Project面板上新建文件夹Resources,把你想要加载的图片放在这里面。

Unity 获取IOS相册 授权选中的照片 unity脚本获取image组件_赋值_02

3.刚加载进来的图片是不能用的需要把图片改成sprite格式,图片必须是sprite格式在unity的Image里才可以使用。点击图片在Inspector面板的Texture Type里将属性改成Sprite(2D and UI)。

Unity 获取IOS相册 授权选中的照片 unity脚本获取image组件_System_03


修改之后图片会变成这个样子。

Unity 获取IOS相册 授权选中的照片 unity脚本获取image组件_System_04

第一种方法是定义变量通过变量把图片赋值给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组件拖进脚本。

Unity 获取IOS相册 授权选中的照片 unity脚本获取image组件_unity_05

运行之后的结果。

Unity 获取IOS相册 授权选中的照片 unity脚本获取image组件_System_06

第二种方法是在文件夹里找到图片然后赋值给Image组件。

在Assets下创建一个名为Resources的文件夹(注意名字不要错不然会找不到图片),然后把图片放在这个文件夹里,同样需要把图片改成sprite格式。

Unity 获取IOS相册 授权选中的照片 unity脚本获取image组件_Image_07


在这里我是动态创建的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。

Unity 获取IOS相册 授权选中的照片 unity脚本获取image组件_Image_08

也可以通过脚本去设置格式。

登录后复制


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);

	}
}

设置格式后的结果。

Unity 获取IOS相册 授权选中的照片 unity脚本获取image组件_赋值_09

       

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空