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

Sprite.Create

提出更改建议

成功!

感谢您帮助我们提高Unity文档的质量。尽管我们无法接受所有提交,但我们确实阅读用户提出的每个建议的更改,并在合适的情况下进行更新。

关闭

提交失败

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

关闭

取消

声明

public static Sprite Create(Texture2D texture, Rect rect, Vector2 pivot, float pixelsPerUnit, uint extrude);

声明

public static Sprite Create(Texture2D texture, Rect rect, Vector2 pivot, float pixelsPerUnit, uint extrude, SpriteMeshType meshType);

声明

public static Sprite Create(Texture2D texture, Rect rect, Vector2 pivot, float pixelsPerUnit, uint extrude, SpriteMeshType meshType, Vector4 border, bool generateFallbackPhysicsShape);

声明

public static Sprite Create(Texture2D texture, Rect rect, Vector2 pivot, float pixelsPerUnit, uint extrude, SpriteMeshType meshType, Vector4 border);

声明

public static Sprite Create(Texture2D texture, Rect rect, Vector2 pivot);

声明

public static Sprite Create(Texture2D texture, Rect rect, Vector2 pivot, float pixelsPerUnit);

声明

public static Sprite Create(Texture2D texture, Rect rect, Vector2 pivot, float pixelsPerUnit, uint extrude, SpriteMeshType meshType, Vector4 border, bool generateFallbackPhysicsShape, SecondarySpriteTexture[] secondaryTextures);

参数

texture 获取 Sprite 图形的纹理。
rect 要用于 Sprite 的纹理矩形部分。
pivot Sprite 相对于其图形矩形的轴点。
pixelsPerUnit Sprite 中对应着世界空间中一个单位的像素数。
extrude Sprite 网格要向外扩展的量。
meshType 为 Sprite 生成的网格类型。
border Sprite 的边框大小 (X=左,Y=下,Z=右,W=上)。
generateFallbackPhysicsShape 是否为 Sprite 生成默认物理形状。
secondaryTextures 创建的 Sprite 要使用的二级纹理属性。

描述

创建新的 Sprite 对象。

Sprite.Create 创建可以在游戏应用程序中使用的新的 Sprite。需要加载一个纹理并将其分配给 Sprite.Create,以便控制新的 Sprite 的外观。在下面的脚本示例中,在按下按钮时会显示一个新的 Sprite。在 Start 中创建了新的 Sprite。

第二个参数 rect 定义了所使用的子纹理。 rect 参数在纹理的像素中定义。Rect(50.0f, 10.0f, 200.0f, 140.0f) 将创建从 50.0f 到 50.0f + 200.0f = 250.0f 的左到右范围。底部到顶部的范围将是 10.0f 到 10.0f + 140.0f = 150.0f。第三个参数 pivot 确定什么成为 Sprite 的中心。这是一个相对于 rectVector2,其中 Vector2(0.0f, 0.0f) 是左下角,Vector2(1.0f, 1.0f) 是右上角。 pixelsPerUnit 值控制 Sprite 的大小。将此值减少到每世界 100 个像素以下会增大 Sprite 的大小。 extrude 值定义了围绕 Sprite 的像素数。如果 Sprite 包含在图集内,这会很有用。 meshType 选择使用 FullRect 还是 Tight。最后, border 确定 Sprite 的切分,通常用于定义 Sprite 平铺行为。这些值以像素单位表示。

其他资源:SpriteRenderer 类。

// Create a Sprite at startup.
// Assign a Texture to the Sprite when the button is pressed.

using UnityEngine;

public class SpriteCreate : MonoBehaviour { public Texture2D tex; private Sprite mySprite; private SpriteRenderer sr;

void Awake() { sr = gameObject.AddComponent<SpriteRenderer>() as SpriteRenderer; sr.color = new Color(0.9f, 0.9f, 0.9f, 1.0f);

transform.position = new Vector3(1.5f, 1.5f, 0.0f); }

void Start() { mySprite = Sprite.Create(tex, new Rect(0.0f, 0.0f, tex.width, tex.height), new Vector2(0.5f, 0.5f), 100.0f); }

void OnGUI() { if (GUI.Button(new Rect(10, 10, 100, 30), "Add sprite")) { sr.sprite = mySprite; } } }

以下代码示例演示如何使用次要纹理属性在启动时创建一个精灵。

using UnityEngine;

// Create a Sprite at startup with Secondary Textures properties

public class ExampleClass : MonoBehaviour { void Start() { var texture = new Texture2D(64, 64); var secondaryTexture1 = new Texture2D(64, 64); var secondaryTexture2 = new Texture2D(64, 64); var secondaryTexture3 = new Texture2D(64, 64); var secondarySpriteTexture = new[] { new SecondarySpriteTexture() { name = "_SecondaryTexture1", texture = secondaryTexture1 }, new SecondarySpriteTexture() { name = "_SecondaryTexture2", texture = secondaryTexture2 }, new SecondarySpriteTexture() { name = "_SecondaryTexture3", texture = secondaryTexture3 } };

var sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), Vector2.zero, 100, 0, SpriteMeshType.FullRect, Vector4.zero, false, secondarySpriteTexture); int spriteSecondaryTextureCount = sprite.GetSecondaryTextureCount(); } }