Unity3D学习笔记(十二):2D模式和异步资源加载
2D模式和3D模式区别:背景纯色,摄像机2D,没有深度轴

给切图打上标签

老版图集打包,选择Always Enabled:把同一标签的图片,全部挤在一张图片上,合理利用剩余空间

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//简易动画状态机,面向对象的思想
//枚举表示状态
public enum PlayerState
{
Idle,
Walk,
}
public class SpriteTest : MonoBehaviour
{
public Sprite[] idleSprites;
public Sprite[] walkSprites;
public float timeInterval = 0.1f;
private SpriteRenderer spriteRenderer;
private float curTime = ;
private int curIndex = ;
private float h;
private PlayerState state = PlayerState.Idle;//枚举项附初值
public PlayerState State//给枚举变量添加属性
{
get
{
return state;
}
set
{
if (state != value)//判断状态是否改变
{
curIndex = ;//如果改变,把数组下标curIndex清零
state = value;//给状态赋新值
}
}
}
// Use this for initialization
void Start()
{
spriteRenderer = GetComponent<SpriteRenderer>();
}
// Update is called once per frame
void Update()
{
h = Input.GetAxisRaw("Horizontal");
CheckState();
}
//根据轴值检测状态
void CheckState()
{
if (h == )
{
State = PlayerState.Idle;
}
else
{
State = PlayerState.Walk;
}
ChooseState();
}
//根据状态传递数组
void ChooseState()
{
switch (State)
{
case PlayerState.Idle:
PlayAnimation(idleSprites);
break;
case PlayerState.Walk:
PlayAnimation(walkSprites);
break;
}
}
//接收数组播放动画
void PlayAnimation(Sprite[] sprites)
{
curTime += Time.deltaTime;
if (curTime >= timeInterval)
{
curIndex++;
curIndex %= sprites.Length;
spriteRenderer.sprite = sprites[curIndex];
curTime = ;
}
}
}
private void OnCollisionEnter2D(Collision2D collision)
{ }
private void OnTriggerEnter2D(Collider2D collision)
{ }
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerMovementController : MonoBehaviour
{
public float moveSpeed = ;
private float h;
// Use this for initialization
void Start () {
} // Update is called once per frame
void Update ()
{
h = Input.GetAxisRaw("Horizontal");
transform.Translate(Vector3.right * Time.deltaTime * h * moveSpeed);
if (h != )//判断在移动时,转身
{
transform.localScale = new Vector3(h > ? : -, , );//用Scale=-1来转身
}
if (Input.GetKeyDown(KeyCode.Space))
{
GetComponent<Rigidbody2D>().AddForce(Vector2.up * , ForceMode2D.Impulse);//施加一个向上的力
}
}
}

碰撞器需要勾选Is Trigger和Used By Effector,效应器才会有效果


Distance Joint 2D:模仿关节

弹簧关节:有重力,有弹簧的效果

Unity3D学习笔记(十二):2D模式和异步资源加载的更多相关文章
- JavaScript学习笔记(十二) 回调模式(Callback Pattern)
函数就是对象,所以他们可以作为一个参数传递给其它函数: 当你将introduceBugs()作为一个参数传递给writeCode(),然后在某个时间点,writeCode()有可能执行(调用)intr ...
- python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL
python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL实战例子:使用pyspider匹配输出带.html结尾的URL:@config(a ...
- Go语言学习笔记十二: 范围(Range)
Go语言学习笔记十二: 范围(Range) rang这个关键字主要用来遍历数组,切片,通道或Map.在数组和切片中返回索引值,在Map中返回key. 这个特别像python的方式.不过写法上比较怪异使 ...
- VSTO学习笔记(三) 开发Office 2010 64位COM加载项
原文:VSTO学习笔记(三) 开发Office 2010 64位COM加载项 一.加载项简介 Office提供了多种用于扩展Office应用程序功能的模式,常见的有: 1.Office 自动化程序(A ...
- Unity3D之Mecanim动画系统学习笔记(十):Mecanim动画的资源加载相关
资源加载是必备的知识点,这里就说说Mecanim动画的资源如何打包及加载. 注意,Unity4.x和Unity5.x的AssetBundle打包策略不一样,本笔记是基于Unity4.x的AssetBu ...
- Android 学习笔记之Volley(八)实现网络图片的数据加载
PS:最后一篇关于Volley框架的博客... 学习内容: 1.使用ImageRequest.java实现网络图片加载 2.使用ImageLoader.java实现网络图片加载 3.使用NetWork ...
- Unity3D学习笔记(二十九):AssetBundle
AssetBundle 什么是AssetBundle? AssetBundle是把一些资源文件或场景文件,以某种方式保存在一个文件中.一个AssetBundle可以包含模型.材质.图片或场景等.但是A ...
- Unity3D学习笔记(二十五):文件操作
文件是什么? 存储在硬盘上的最后的节点. 文件夹是什么? 文件的上级单位称为文件夹. 文件夹的基本结构? 文件夹是层级化结构的,对于同级的文件夹不可以重名,父文件夹和子文件夹可以同名> IO:I ...
- Unity3D学习笔记(二十八):Editor
Editor: 对编辑器进行一些拓展开发 关于继承Mono类的扩展开发 特性: [特性]:声明性的标签(类,方法,结构体,变量) 特性只对字段声明有效,后面必须接字段:多个特性,可以修饰一个字段 ...
随机推荐
- QQ公众号?是的,你没看错!
微信公众平台培育了800多万的微信公众号,自身也通过微信游戏.广告分销等找到了一些增值盈利模式.作为同门大师兄,qq也在11月份推出了QQ公众号,第一个手机QQ上的“生活服务号”——YTO圆通速递上线 ...
- 高性能MySQL中的三星索引
高性能MySQL中的三星索引 我对此提出了深深的疑问: 一星:相关的记录指的是什么??(相关这个词很深奥,“相关部门”是什么部门) 二星:如果建立了B-Tree(B+Tree)索引,数据就有序了.三星 ...
- 在sublime3中docblockr插件配置apidoc接口文档注释模板
写在前面: 将进行3个步骤配置 1.在sublime3中安装插件docblockr,可以参考http://www.cnblogs.com/jiangxiaobo/p/8327709.html 2.安装 ...
- leadJS初构建
目录: 1. 面向对象篇 2. 数据结构篇 3. 全局函数篇 4. APICloud篇 1. 面向对象篇 JS原本无法进行程序员世界的面向对象编程,故此对JS封装成一种具有面向对象编程能力的JS. / ...
- openstack 部署笔记--glance
控制节点 创建用户及服务 $ . admin-openrc $ openstack user create --domain default --password-prompt glance $ op ...
- CentOS6.5安装HBase集群及多HMaster配置
1.配置SSH免登录 请参考:http://www.cnblogs.com/hunttown/p/5470357.html 服务器配置: Hadoop-NN-01 主Hadoop-NN-02 备Had ...
- visual studio 2010 winform程序不能添加对system.web的引用
visual studio 2010 winform程序不能添加对system.web的引用[转载] 需要引用到System.Web.发现没有“System.Web”.在通过“浏览”方式,找到该DLL ...
- windows脚本的if语句
- eclipse设置字体、字符编码、快捷键
1.设置字体: preferences->general->appearnce->colors and fonts->edit->字体大小14,字形常规,字体Consol ...
- 对使用wordpress做开发的童鞋的提醒
[1.]WordPress 4.7.2 以及之前的所有版本都存在以下6个安全问题:记得及时升级啊. 通过媒体文件的元数据的跨网站脚本(XSS)控制字符可以欺骗重定向网址验证管理员可以使用插件删除功能删 ...