void CreateRuntimeAssetsAndGameObject() { // 1. Create the AtlasAsset (needs atlas text asset and textures, and materials/shader); // 2. Create SkeletonDataAsset (needs json or binary asset file, and an AtlasAsset) // 3. Create SkeletonAnimation (needs a valid SkeletonDataAsset) Texture2D[] textures = new Texture2D[1]; textures[0] = new Texture2D(0, 0, TextureFormat.RGBA32, false, false); textures[0].filterMode = FilterMode.Point; byte[] bytes = File.ReadAllBytes(Application.dataPath + "/Resources/Scenes/girl/girl.png"); textures[0].LoadImage(bytes); textures[0].name = "girl"; Material materialPropertySource = new Material(Shader.Find("Spine/Skeleton")); //runtimeAtlasAsset = AtlasAsset.CreateRuntimeInstance(Resources.Load<TextAsset>("Scenes/girl/girl.atlas"), textures, materialPropertySource, true); //runtimeSkeletonDataAsset = SkeletonDataAsset.CreateRuntimeInstance(Resources.Load<TextAsset>("Scenes/girl/girl"), runtimeAtlasAsset, true); atlasText = new TextAsset(File.ReadAllText(Application.dataPath + "/Resources/Scenes/girl/girl.atlas.txt")); atlasText.name = "girl.atlas"; skeletonJson = new TextAsset(File.ReadAllText(Application.dataPath + "/Resources/Scenes/girl/girl.json")); skeletonJson.name = "girl"; runtimeAtlasAsset = AtlasAsset.CreateRuntimeInstance(atlasText, textures, materialPropertySource, true); runtimeSkeletonDataAsset = SkeletonDataAsset.CreateRuntimeInstance(skeletonJson, runtimeAtlasAsset, true); }
/// <summary> /// 通过TextAsset,Texture2D[],Material 获取AtlasRegion集合 /// </summary> /// <returns>The equipment atlas regions.</returns> /// <param name="textAsset">Text asset.</param> /// <param name="textures">Textures.</param> /// <param name="material">Material.</param> public List <AtlasRegion> GetEquipmentAtlasRegions(EquipmentObject eo, Material material) { #if UNITY_ANDROID return(AtlasAsset.CreateRuntimeInstance(eo.equipmentTxtAsset, eo.equipmentTexture_Alpha, eo.equipmentTexture_RGB, material, true, true).GetAtlas(true).AtlasRegionList); #elif UNITY_IPHONE || UNITY_EDITOR return(AtlasAsset.CreateRuntimeInstance(eo.equipmentTxtAsset, new Texture2D[] { eo.equipmentTexture }, material, true).GetAtlas().AtlasRegionList); #endif }
void CreateRuntimeAssetsAndGameObject() { // 1. Create the AtlasAsset (needs atlas text asset and textures, and materials/shader); // 2. Create SkeletonDataAsset (needs json or binary asset file, and an AtlasAsset) // 3. Create SkeletonAnimation (needs a valid SkeletonDataAsset) runtimeAtlasAsset = AtlasAsset.CreateRuntimeInstance(atlasText, textures, materialPropertySource, true); runtimeSkeletonDataAsset = SkeletonDataAsset.CreateRuntimeInstance(skeletonJson, runtimeAtlasAsset, true); }
// Start is called before the first frame update void Start() { runtimeAtlasAsset = AtlasAsset.CreateRuntimeInstance(atlasText, textures, materialPropertySource, true); runtimeSkeletonDataAsset = SkeletonDataAsset.CreateRuntimeInstance(skeletonJson, runtimeAtlasAsset, true); runtimeSkeletonDataAsset.GetSkeletonData(false); // preload. runtimeSkeletonAnimation = SkeletonAnimation.NewSkeletonAnimationGameObject(runtimeSkeletonDataAsset); // Extra Stuff runtimeSkeletonAnimation.Initialize(false); runtimeSkeletonAnimation.Skeleton.SetSkin("base"); runtimeSkeletonAnimation.Skeleton.SetSlotsToSetupPose(); runtimeSkeletonAnimation.AnimationState.SetAnimation(0, "run", true); runtimeSkeletonAnimation.GetComponent <MeshRenderer>().sortingOrder = 10; runtimeSkeletonAnimation.transform.Translate(Vector3.down * 2); }
private void CreateRuntimeAssetsAndGameObject() { this.runtimeAtlasAsset = AtlasAsset.CreateRuntimeInstance(this.atlasText, this.textures, this.materialPropertySource, true); this.runtimeSkeletonDataAsset = SkeletonDataAsset.CreateRuntimeInstance(this.skeletonJson, this.runtimeAtlasAsset, true, 0.01f); }
/// <summary> /// 通过Spine生成的json,atlas文件创建角色 /// </summary> /// <param name="skeletonJson">Skeleton json.</param> /// <param name="atlasText">Atlas text.</param> /// <param name="textures">Textures.</param> /// <param name="material">Material.</param> /// <param name="initialize">If set to <c>true</c> initialize.</param> /// <param name="skinName">Skin name.</param> /// <param name="animationName">Animation name.</param> /// <param name="loop">If set to <c>true</c> loop.</param> public void Create(SpineAvatarType avatarType, EquipmentObject eo, Material material, bool initialize, string name, string skinName, string animationName, bool loop, RoleEquipmentData data, Action <Avatar> createSucCallBack, Action <string> failCallBack, Action <bool> createQueueCallBack, bool isTP) { #if UNITY_ANDROID GameManager.Instance.StartCoroutine(Create(avatarType, eo, SkeletonDataAsset.CreateRuntimeInstance(eo.equipmentJsonAsset, AtlasAsset.CreateRuntimeInstance(eo.equipmentTxtAsset, eo.equipmentTexture_Alpha, eo.equipmentTexture_RGB, material, initialize, true), initialize), name, animationName, skinName, loop, data, createSucCallBack, failCallBack, createQueueCallBack, isTP)); #elif UNITY_IPHONE || UNITY_EDITOR GameManager.Instance.StartCoroutine(Create(avatarType, eo, SkeletonDataAsset.CreateRuntimeInstance(eo.equipmentJsonAsset, AtlasAsset.CreateRuntimeInstance(eo.equipmentTxtAsset, new Texture2D[] { eo.equipmentTexture }, material, initialize), initialize), name, animationName, skinName, loop, data, createSucCallBack, failCallBack, createQueueCallBack, isTP)); #endif }