Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 
 

84 rader
2.2 KiB

  1. using System;
  2. using SUISSEngine;
  3. using UnityEngine;
  4. public class ReadOnlyWrapper : MonoBehaviour
  5. {
  6. public void WrapAround(GameObject original)
  7. {
  8. GridTile component = original.GetComponent<GridTile>();
  9. if (component == null)
  10. {
  11. return;
  12. }
  13. SpriteRenderer spriteRenderer = component.spriteRenderer;
  14. SpriteRenderer bottomRenderer = component.bottomRenderer;
  15. this.CopyGridTile(component);
  16. this.CopySpriteRenderer(this.mainSprite, spriteRenderer);
  17. this.CopyAnimator(this.mainAnimator, original.GetComponent<Animator>());
  18. this.CopySpriteRenderer(this.bottomSprite, bottomRenderer);
  19. }
  20. private void CopyGridTile(GridTile oTile)
  21. {
  22. this.tile.gridSizeU = oTile.gridSizeU;
  23. this.tile.gridSizeV = oTile.gridSizeV;
  24. this.tile.canMirror = oTile.canMirror;
  25. this.tile.offset = oTile.offset;
  26. this.tile.orderOffset = oTile.orderOffset;
  27. this.tile.fixedOrder = oTile.fixedOrder;
  28. this.tile.requiredGridType = oTile.requiredGridType;
  29. this.tile.canHide = oTile.canHide;
  30. }
  31. private void CopySpriteRenderer(SpriteRenderer renderer, SpriteRenderer original)
  32. {
  33. if (original != null)
  34. {
  35. renderer.enabled = true;
  36. renderer.sprite = original.sprite;
  37. renderer.color = original.color;
  38. }
  39. else
  40. {
  41. renderer.sprite = null;
  42. renderer.color = Color.white;
  43. renderer.enabled = false;
  44. }
  45. }
  46. private void CopyAnimator(Animator animator, Animator original)
  47. {
  48. if (original != null)
  49. {
  50. animator.enabled = true;
  51. animator.runtimeAnimatorController = original.runtimeAnimatorController;
  52. animator.avatar = original.avatar;
  53. animator.applyRootMotion = original.applyRootMotion;
  54. animator.updateMode = original.updateMode;
  55. animator.cullingMode = original.cullingMode;
  56. }
  57. else
  58. {
  59. animator.runtimeAnimatorController = null;
  60. animator.avatar = null;
  61. animator.applyRootMotion = false;
  62. animator.updateMode = AnimatorUpdateMode.Normal;
  63. animator.cullingMode = AnimatorCullingMode.AlwaysAnimate;
  64. animator.enabled = false;
  65. }
  66. }
  67. public SpriteRenderer mainSprite;
  68. public SpriteRenderer bottomSprite;
  69. public Animator mainAnimator;
  70. public Animator bottomAnimator;
  71. public GridTile tile;
  72. public Material defaultSprite;
  73. }