版本:Unity 6(6000.0)
语言英语
  • C#

Sprite.GetScriptableObjects

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们会阅读用户的每条建议,并在适用的情况下进行更新。

关闭

提交失败

由于某种原因,您的建议更改无法提交。请在几分钟内重试。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

public uint GetScriptableObjects(ScriptableObject[] scriptableObjects);

参数

scriptableObjects 包含 Sprite 引用的 ScriptableObject 数组。

返回

uint 返回检索到的 ScriptableObject 的数量。

说明

检索 Sprite 引用的 ScriptableObject 的数组。

如果作为参数传递的数组大小小于 Sprite 引用的 ScriptableObject 的数量,数组将不会调整大小,结果将受到限制。

如果作为参数传递的数组大小大于 Sprite 引用的 ScriptableObject 的数量,数组中使用的元素数量将由方法的返回值指示。

以下是对 Sprite 添加、获取和移除 ScriptableObject 引用示例用法。

using UnityEngine;

/* * Creates a custom ScriptableObject and attaches it * to a Sprite. The ScriptableObject is then removed after * the first Update loop so that the messages are only printed once. */

// A custom ScriptableObject to hold any custom data. public class MyScriptableObject : ScriptableObject { public string myCustomData; }

public class Sample : MonoBehaviour { Sprite m_Sprite; void Start() { var customData = ScriptableObject.CreateInstance<MyScriptableObject>(); customData.myCustomData = "My Data"; var texture = Texture2D.whiteTexture; m_Sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), Vector2.zero, texture.width); var spriteRenderer = gameObject.AddComponent<SpriteRenderer>(); m_Sprite.AddScriptableObject(customData); spriteRenderer.sprite = m_Sprite; }

void Update() { var scriptableObjectCount = m_Sprite.GetScriptableObjectsCount(); if (scriptableObjectCount > 0) { var scriptableObjects = new ScriptableObject[scriptableObjectCount]; var retrieveCount = m_Sprite.GetScriptableObjects(scriptableObjects); //This will print 1 since there is 1 ScriptableObject reference. print(retrieveCount); var myScriptableObject = scriptableObjects[0] as MyScriptableObject; // This will print "My Data" print(myScriptableObject.myCustomData);

// Removing the ScriptableObject reference so that the prints // above no longer executes. m_Sprite.RemoveScriptableObjectAt(scriptableObjectCount - 1); } } }