ItemUtil.cs 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. using UnityEngine;
  2. using GadgetCore.API;
  3. namespace PlatformBlock
  4. {
  5. public static class ItemUtil
  6. {
  7. public static int CreatePlacablePlatformItem(string tileImgPath, string itemImgPath, string name)
  8. {
  9. Texture2D textureTile = GadgetCoreAPI.LoadTexture2D(tileImgPath);
  10. Texture2D textureItem = GadgetCoreAPI.LoadTexture2D(itemImgPath);
  11. GameObject gameObject = Object.Instantiate<GameObject>((GameObject)Resources.Load("prop/2501"));
  12. Renderer renderer = gameObject.GetComponentInChildren<Renderer>();
  13. renderer.material = new Material(Shader.Find("Transparent/Diffuse"))
  14. {
  15. mainTexture = textureTile
  16. };
  17. GameObject collidereObject = new GameObject();
  18. collidereObject.transform.localScale = new Vector3(4.0f, 0, 5);
  19. collidereObject.transform.localPosition = new Vector3(10f, 2, 0);
  20. collidereObject.transform.SetParent(gameObject.transform);
  21. collidereObject.layer = 11;
  22. BoxCollider collider = collidereObject.AddComponent<BoxCollider>();
  23. collider.size = new Vector3(1, 0, 1);
  24. GameObject collidereDeactivationTriggerObject = new GameObject();
  25. collidereDeactivationTriggerObject.transform.localScale = new Vector3(4.7f, 3.8f, 5);
  26. collidereDeactivationTriggerObject.transform.localPosition = new Vector3(10f, 0, 0);
  27. collidereDeactivationTriggerObject.transform.SetParent(gameObject.transform);
  28. collidereDeactivationTriggerObject.layer = 0;
  29. BoxCollider deactivationTrigger = collidereDeactivationTriggerObject.AddComponent<BoxCollider>();
  30. deactivationTrigger.size = new Vector3(1, 1, 1);
  31. deactivationTrigger.isTrigger = true;
  32. deactivationTrigger.gameObject.AddComponent<PlatformColliderScript>();
  33. GameObject collidereOnTopTriggerObject = new GameObject();
  34. collidereOnTopTriggerObject.transform.localScale = new Vector3(4.3f, 3.98f, 5);
  35. collidereOnTopTriggerObject.transform.localPosition = new Vector3(10f, 4, 0);
  36. collidereOnTopTriggerObject.transform.SetParent(gameObject.transform);
  37. collidereOnTopTriggerObject.layer = 0;
  38. BoxCollider onTopTrigger = collidereOnTopTriggerObject.AddComponent<BoxCollider>();
  39. onTopTrigger.size = new Vector3(1, 1, 1);
  40. onTopTrigger.isTrigger = true;
  41. onTopTrigger.gameObject.AddComponent<PlatformOnTopScript>();
  42. ItemInfo itemInfo = new ItemInfo(0, name, "", textureItem, -1, default, null, null, null, null);
  43. itemInfo.Register(name, -1, false);
  44. new TileInfo(TileType.NONSOLID, textureTile, gameObject, itemInfo).Register(name, -1, false);
  45. return itemInfo.GetID();
  46. }
  47. }
  48. }