用代码场景Spine人物
在使用Spine动画的时候可能会需要用代码创建,所以就小小的研究了一下 /// <summary>
/// 加载一个spine的骨骼动画
/// </summary>
/// <param name="path"></param>
/// <returns></returns>
public static GameObject loadSpineAnim(string path)
{
//加载json,atlas文件;
TextAsset jsonFile = AssetDatabase.LoadAssetAtPath<TextAsset>(@"Assets\" + path + ".json");
TextAsset atlasFile = AssetDatabase.LoadAssetAtPath<TextAsset>(@"Assets\" + path + ".atlas.txt"); //解析图片个数;就是材质个数;
string atlasStr = atlasFile.ToString();
string[] atlasLines = atlasStr.Split('\n');
List<string> _lsPng = new List<string>();
for (int i = ; i < atlasLines.Length - ; i++)
{
if (atlasLines[i].Length == )
_lsPng.Add(atlasLines[i + ]);
}
//创建材质;
Material[] maters = null;
if (_lsPng != null)
{
maters = new Material[_lsPng.Count];
string pngPath = path.Replace("/", @"\");
int pos = pngPath.LastIndexOf(@"\");
pos++;
pngPath = pngPath.Remove(pos, pngPath.Length - pos);
for (int i = ; i < _lsPng.Count; i++)
{
maters[i] = new Material(Shader.Find("Spine/Skeleton"));
maters[i].mainTexture = LY.ResLoad.loadImage(pngPath + _lsPng[i]).texture;
}
}
//创建一个atlas;
AtlasAsset atlasAsset = ScriptableObject.CreateInstance<AtlasAsset>();
atlasAsset.atlasFile = atlasFile;
atlasAsset.materials = maters;
atlasAsset.Reset(); //创建一个spine插件的动画文件,并初始化数据;
SkeletonDataAsset skeletonDataAsset = SkeletonDataAsset.CreateInstance<SkeletonDataAsset>();
skeletonDataAsset.atlasAssets = new AtlasAsset[] { atlasAsset };
skeletonDataAsset.skeletonJSON = jsonFile;
skeletonDataAsset.fromAnimation = new string[];
skeletonDataAsset.toAnimation = new string[];
skeletonDataAsset.duration = new float[];
skeletonDataAsset.scale = 0.01f; //创建出来动画的渲染大小;
skeletonDataAsset.Reset(); //开始创建GameObject;
GameObject obj = new GameObject(jsonFile.name);
//加上动画组件;
SkeletonAnimation skelet = obj.AddComponent<SkeletonAnimation>();
skelet.skeletonDataAsset = skeletonDataAsset;
skelet.transform.localPosition = new Vector3(100f, 0f, 0f);
skelet.transform.localScale = new Vector3(1f, 1f, 1f);
skelet.Reset(); return obj;
}
用代码场景Spine人物的更多相关文章
- Redux/Mobx/Akita/Vuex对比 - 选择更适合低代码场景的状态管理方案
近期准备开发一个数据分析 SDK,定位是作为数据中台向外输出数据分析能力的载体,前端的功能表现类似低代码平台的各种拖拉拽.作为中台能力的载体,SDK 未来很大概率会需要支持多种视图层框架,比如Vue2 ...
- git 提交代码场景
1.首次提交代码到master git init git add . git commit -m '' git remote add origin +address git push -u origi ...
- java类成员变量与代码块初始化
首先根据下面的这个一段代码:引入关于java初始化顺序的问题public class InitationTest extends Person { public InitationTest() { S ...
- netty-socketio 示例代码
socket.io是一个不错的websocket项目,github上有它的java实现:netty-socketio 及 示例项目 netty-socketio-demo,基本上看看demo示例项目就 ...
- 如何保障Go语言基础代码质量?
为什么要谈这个topic? 实践中,质量保障体系的建设,主要针对两个目标: 一是不断提高目标业务测试覆盖率,保障面向客户的产品质量:二就是尽可能的提高人效,增强迭代效率.而构建全链路质量卡点就是整个体 ...
- 【AS3 Coder】任务六:人物换装(纸娃娃)系统的制作
使用框架:AS3(Flash Professional CS5.0及更高版本 + Flash Buider)任务描述:了解人物换装系统的制作原理难度系数:2 本章源码下载:http://www.iam ...
- IOS IAP APP内支付 Java服务端代码
IOS IAP APP内支付 Java服务端代码 场景:作为后台需要为app提供服务,在ios中,app内进行支付购买时需要进行二次验证. 基础:可以参考上一篇转载的博文In-App Purcha ...
- IDEA:Git stash 暂存分支修改的代码
IDEA:Git stash 暂存分支修改的代码 场景:当我们正在master分支开发新功能的时候,突然接到一个任务发现线上出现了一个紧急的BUG需要修复,由于没有打新分支做这部分新需求,这时正做到半 ...
- 龙之谷手游WebVR技术分享
主要面向Web前端工程师,需要一定Javascript及three.js基础:本文主要分享内容为基于three.js开发WebVR思路及碰到的问题:有兴趣的同学,欢迎跟帖讨论. 目录:一.项目体验1. ...
随机推荐
- Intent、Bundle——实现Activity之间的通信
http://blog.sina.com.cn/s/blog_62dea93001015847.html 一个应用程序会有多个Activity,但是只有一个Activity作为程序的入口,应用中的其他 ...
- Silverlight中的拖拽实现的图片上传
原文 http://blog.csdn.net/dujingjing1230/article/details/5443003 在Silverlight中因为可以直接从系统的文件夹里面拖出来一个文件直接 ...
- Unix/Linux环境C编程入门教程(22) C/C++如何获取程序的运行时间
1.问:知道程序运行时间我们可以做什么? 在<C++应用程序性能优化>一书中,如果大家读过相信大家一定对性能优化这一块非常上心,文中总是对优化前后的时间对比非常直观给我们一个感受. 那么我 ...
- 【POJ】3468 A Simple Problem with Integers ——线段树 成段更新 懒惰标记
A Simple Problem with Integers Time Limit:5000MS Memory Limit:131072K Case Time Limit:2000MS Descr ...
- hdu 1715 大菲波数_java
用java的大数解决 import java.math.BigInteger; import java.util.Scanner; public class Main { public static ...
- #include <boost/shared_ptr.hpp>
共享指针 这个智能指针命名为boost::shared_ptr,定义在boost/shared_ptr.hpp里.智能指针boost::shared_ptr基本上类似于boost::scoped_pt ...
- 关于httpHandlers、handlers和httpModules、modules的那些配置中的各种问题
在web.config中配置httpHandlers.handlers和httpModules.modules根据服务器环境不同设置各有不同 在IIS6及IIS7.0以上的经典模式中配置httpMod ...
- JSPatch 动态更新,bug修复
本文贴出项目中热修复的代码片段: require('UIView, JPObject, HtmlAllViewController,DataManager,EMClient,EaseMessageVi ...
- Python OpenGL学习(1): 环境配置及错误篇
系统环境是:Ubuntu 14.04 个人首次接触OpenGL,学到哪就写到哪. 1.模块安装: sudo apt-get install python-openglpip install PyOpe ...
- 关于Get和Post的学习笔记(五)
一 .Get和Post的优缺点 1. Get> 优点: 编写起来比较简单,只要在地址后面拼接数据即可. > 缺点: 提交的数据有长度限制.安全性比较差 2.Post > 优点: 提交 ...