Регистрация
Регистрация
Меню
Что бы скачать, необходимо зарегистрироватся или войти!

5.0 (2 - голоса пользователей)

Sprite Slicer 2D версия неизвестна

Поддерживаемые версии Unity: 4.3 и выше
Тип лицензии: Запрещено.

Дата добавления: 26.06.2014 - 12:29
Категория: Скрипты
Добавил: UU
Материал скачали: 276-раз
Количество комментариев: 1
Количество просмотров: 3158

Slice, dice and explode any sprite in your game! Sprite Slicer allows you to quickly and easily cut any physics-enabled sprite into little pieces, each of which will then have its own realistic physics behaviour.

* Works on both Unity and 2D Toolkit sprites.
* Simple static script functions allow you to slice sprites along a given line, or explode them into multiple parts.
* Optimised to preserve dynamic batching and reduce draw calls.
* Slices any sprite with a 2D box, circle or convex polygon collider.
* Easily restrict slices to particular sprites using LayerMasks.
* Full C# source code and example scene included.

Демка

  • Скриншоты

Помочь проэкту

ПОМОГИТЕ НАШЕМУ ПРОЕКТУ, МЫ БУДЕМ РАДЫ, ЛЮБОЙ ВАШЕЙ ПОМОЩИ!


WebMoney Yandex Деньги
WMR - R402086817307
WMU - U873652601085
WMZ - Z102580587906
Yandex - 410012450394779
Slicer, 2d, Sprite, SpriteSlicer2D
  • Комментарии (1 шт.)

avatar
2
1 vursol
11:06, 24.09.2016

не работает. нужно в скрипте SpriteSlicer2D заменить метод на этот


Код
public void InitFromUnitySprite(SpriteRenderer unitySprite, PolygonCollider2D polygon)
  {
  Material material = null;

  for(int loop = 0; loop < s_MaterialList.Count; loop++)
  {
  if(s_MaterialList[loop].mainTexture != null && s_MaterialList[loop].mainTexture.GetInstanceID() == unitySprite.sprite.texture.GetInstanceID())
  {
  material = s_MaterialList[loop];
  }
  }

  if(material == null)
  {
  material = new Material(unitySprite.material.shader);
  material.SetTexture(0, unitySprite.sprite.texture);
  material.mainTexture = unitySprite.sprite.texture;
  material.name = unitySprite.name + "_sliced";
  s_MaterialList.Add(material);
  }

  Rect textureRect = unitySprite.sprite.textureRect;
  Vector2 minTextureCoords = new Vector2(textureRect.xMin/(float)unitySprite.sprite.texture.width, textureRect.yMin/(float)unitySprite.sprite.texture.height);
  Vector2 maxTextureCoords = new Vector2(textureRect.xMax/(float)unitySprite.sprite.texture.width, textureRect.yMax/(float)unitySprite.sprite.texture.height);

  InitSprite(unitySprite.gameObject, polygon, minTextureCoords, maxTextureCoords, unitySprite.sprite.bounds, material, false, false, false);
  m_ParentInstanceID = unitySprite.gameObject.GetInstanceID();
  }
Для комментирования необходимо зарегистрироватся или войти!
↑ Наверх