AutoTile 自动拼接(三) 学习与实践
今天把 图像数据保存完善了一下。天冷,没打多少字,见谅。
接着昨天说的,首先我们打开u3d,做一个空物体gameobject,然后做几个sprite,如下图所示
上面的sprite 排成四个 正方形。
资源,你可以用昨天 我说的切好的图像,随意放里面。
下面我们给 gameobject 添加 代码
using UnityEngine;
using System.Collections; public class ResourcesSprite : MonoBehaviour
{ void Start()
{
OnAutoTileSave("", "sea", , );
OnAutoTileSave("", "sea", , );
OnAutoTileSave("", "sea", , );
} void Update()
{ } //根据 图片名字,键值名字,当前帧 和 总共帧 保存单例中
void OnAutoTileSave(string path, string name, int current, int total)
{
object[] objs = Resources.LoadAll(path);
Sprite[, ,] dict;
//是否存在 键值
if (GameModel.getInstance().dictSprite.ContainsKey(name))
{
dict = GameModel.getInstance().dictSprite[name];
}
else
{
dict = new Sprite[total, , ];
GameModel.getInstance().dictSprite.Add(name, dict);
} int i = ;
foreach (object obj in objs)
{
Sprite sp = obj as Sprite;
if (sp != null)
{ dict[current, i / , i % ] = sp;
i++;
}
}
GameModel.getInstance().dictSprite[name] = dict;
}
}
这个代码很简单,里面用到了单例,我也贴出来,防止小白不懂
using UnityEngine;
using System.Collections;
using System;
using System.Collections.Generic; public class GameModel
{
public Dictionary<string, Sprite[, ,]> dictSprite;
private static GameModel model;
public static GameModel getInstance()
{
if (model == null)
{
model = new GameModel(); model.init();
}
return model;
} private void init()
{
dictSprite = new Dictionary<string, Sprite[, ,]>();
}
}
单例我就不说了,说说 ResourcesSprite类,
它的功能主要是 加载资源,然后放到 字典里面去,为什么要这么写法,原因是为了 显示更加方便。
废话不多说,我们给 下面 四个 sprite,分别添加 脚本
using UnityEngine;
using System.Collections; public class AutoTileShow : MonoBehaviour
{
int i = ;
private Sprite m_Image;
void Start()
{
if (!gameObject.GetComponent<SpriteRenderer>())
{
m_Image = gameObject.AddComponent<SpriteRenderer>().sprite;
}
} float timebattle;
void Update()
{
timebattle -= Time.deltaTime;
if (timebattle <= )
{
timebattle = .2f;//闪烁频率 if (i == )
{
i = ;
}
m_Image = GameModel.getInstance().dictSprite["sea"][i, , ];
gameObject.GetComponent<SpriteRenderer>().sprite = m_Image;
i++;
}
}
}
这里 的作用是 从 单例的字典里面 找到并 显示出来。
为了让update 播放的 别这么快,我就 添加了 0.2秒 换一张图。
换图?是的,现在 显示出来的是 动画的 水,你们 按照昨天我这么搞的,结合今天的,就能看出是动画的水了。
今天先到这,打这几个字,手基本就冻麻木了,明天继续吧。
链接:http://pan.baidu.com/s/1eQSoMl0 密码:8c7m
AutoTile 自动拼接(三) 学习与实践的更多相关文章
- AutoTile 自动拼接(一) 学习与实践
恩,大家好,这两天江苏冷空气袭击,下了今年 第一场第二场雪. 不过今天我要说的 ,和 上面的 屁关系都没有. 今天要说的是 2d无缝自动拼接.大家有没有玩过 RPG Maker VX Ace. 类似 ...
- AutoTile 自动拼接(五) 学习与实践
今天不讲 权值检索,考虑到后期 自动拼接 做出来 更好玩,操作更方便.所以 今天我 补充一节, 网格计算与操作. 具体就是这么个效果,和地图编辑器一样,不过图块还是没有自然的拼接,这个一定一定是 下一 ...
- AutoTile 自动拼接(六 大结局) 学习与实践
昨天在网上找了一些资源图片,这回就不用担心 背景资源不多的问题了,现在我一边 制作,一边发布文章. 各种各样,500多个,这里还是特别感谢 ,万恶的资本主义,不设密码就给我分享. 在制作前,大家看下这 ...
- AutoTile 自动拼接(四) 学习与实践
今天主要来说下,数据绑定. 之前第一章,我说到 把 资源图 画成格子,你们应该还有印象吧. 那么,当我 知道 格子数据,能否拿到 资源对应的图片呢? 大家先复习一下 第一章,发现很多格子数据 是相同的 ...
- AutoTile 自动拼接(二) 学习与实践
开始代码前,我们要做点准备工作. 下面 跟着我做. 首先我 扣了一个 图. 这个是 做 水的资源,所以是动态的,我把其余两张也扣了出来. 看起来一样,不是,这样看肯定 看不出所以然,你们先放到u3d中 ...
- AutoTile 自动拼接 番外篇(自动融合技术)
http://pan.baidu.com/s/1dDQyfSl 密码:ttud 先睹为快吧. 之后 还差一个 智能替换 技术.
- NLP+词法系列(二)︱中文分词技术简述、深度学习分词实践(CIPS2016、超多案例)
摘录自:CIPS2016 中文信息处理报告<第一章 词法和句法分析研究进展.现状及趋势>P4 CIPS2016 中文信息处理报告下载链接:http://cips-upload.bj.bce ...
- 2018-2019-2 20165215《网络对抗技术》Exp10 Final Windows本地内核提权+Exploit-Exercises Nebula学习与实践
目录 PART ONE :Windows本地内核提权 漏洞概述 漏洞原理 漏洞复现 windbg调试本地内核 查看SSDT表和SSDTShadow表 查看窗口站结构体信息 利用Poc验证漏洞 漏洞利用 ...
- Weex学习与实践
Weex学习与实践(一):Weex,你需要知道的事 本文主要介绍包括Weex基本介绍.Weex源码结构.初始化工程.we代码结构.Weex的生命周期.Weex的工作原理.页面间通信.boxmodel ...
随机推荐
- 对一个表中所有列数据模糊查询adoquery
如何用adoquery对一个表中所有列进行模糊查询: procedure TForm3.Button4Click(Sender: TObject); var ASql,AKey: string; I: ...
- 带密钥的sha1加密
带密钥的sha1加密: private static string HmacSha1Sign(string jsonStr, string secretKey, string enCoding ) { ...
- C的指针,真的很经典
工作以后,一直使用C++,也做过Objective C,各种类的方法封装得很好,使用很简单,今天偶尔翻看一下 严蔚敏 的 <数据结构>,第一个程序demo就看了半天,一是由于demo的变量 ...
- erlang四大behaviour之四-supervisor
http://www.cnblogs.com/puputu/articles/1689621.html 1. 监督规则 一个监督者负责启动.停止.监控他的子进程.监督者的一个基本概念就是当必要的时候重 ...
- java的string.split()分割特殊字符时注意点
[1]单个符号作为分隔符 String address="上海|上海市|闵行区|吴中路"; String[] splitAddress=address.s ...
- matlab里的nargin
nargin是用来判断输入变量个数的函数,这样就可以针对不同的情况执行不同的功能.
- Student s = new Student();在内存中做了哪些事情?
[Student s = new Student();在内存中做了哪些事情?] 1加载Student.class文件进内存 2在栈内存为s开辟空间 3在堆内存为学生对象开辟空间 4对学生对象的成员变量 ...
- Sqoop 将hdfs上的文件导入到oracle中,关于date类型的问题
近期的项目中,需要将hadoop运行完成的结果(存在于hdfs上)导入到oracle中,但是在用sqoop导入hdfs中的日期字段'2016-03-01'时,sqoop报错,说date类型必须为'yy ...
- 局部内部类访问方法的参数和局部变量必须是final的
内部类的种类一共分为四种,我看其他几种内部类的时候思路都是很清晰的,然后我就碰到了这一条:"方法中的内部类可以访问外部类成员.对于方法的参数和局部变量,必须有final修饰才可以访问&quo ...
- android 布局页面文件出错故障排除Exception raised during rendering: java.lang.System.arraycopy([CI[CII)V
今天在看布局文件的时候出现 android 布局页面文件出错故障排除Exception raised during rendering: java.lang.System.arraycopy([CI[ ...