切换图片的渲染和显示
拿到组件的引用,改一下属性
图片沿着Z轴做旋转
切换图片的渲染和显示
拿到组件的引用,改一下属性
图片沿着Z轴做旋转
控制图片的移动与切换
随方向改变图片朝向
法一 更改图片显示 素材里有顺序各方向图片
改渲染器中的sprite 就能改图片
在代码中拿到sprite的引用
在上面 拿到引用(定义一个变量,再用getcomponent)注意拿引用的特殊写法
拿到要切换的图片的引用 (0,8,16,24上右下左 记好顺序)搞一个数组 直接把这几张图拖到inspector 面板里的数组里
tips 在project 上端把素材排列由一行 改为两行可以显示图片
下面用输入监听变量的返回值 判断一下h/v的正负 if else if h< 0是zuo
图片切换就像变量赋值 此时的数组中括号内的值是拿到数组以后的顺序了
法二 根据不需要的z轴来控制旋转
坦克大战
private SpriteRenderer sr;
public Sprite[] tankSprite; (直接拖到数组里)
sr = GetComponent<SpriteRenderer>();
if (h<0)
{
sr.Sprite = tankSprite[3];
}
else if (h>0)
{
sr.Sprite = tankSprite[1];
}
0 8 16 24
public Sprite[] tankSprite;
上右下左
Renderer
0 8 16 24
public class player : MonoBehaviour {
public float movespeed=3;
private SpriteRenderer sr;
public Sprite[] tankSprite;
private void Awake()
{
sr = GetComponent<SpriteRenderer>();
}
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
float h = Input.GetAxisRaw("Horizontal");
transform.Translate(Vector3.right*h*movespeed*Time.deltaTime,Space.World );
if (h < 0){
sr.sprite = tankSprite[3];
}else if (h > 0)
{
sr.sprite = tankSprite[1];
}
float v = Input.GetAxisRaw("Vertical");
transform.Translate(Vector3.up*v*movespeed*Time.deltaTime ,Space.World);
if(v<0){
sr.sprite = tankSprite[2];
}else if (v > 0)
{
sr.sprite = tankSprite[0];
}
}
}
2D转向效果实现。
1.更换图片,
2.旋转角度。
更改Sprite Render的图片。
图片使用SpriteRender组件控制。
改变坦克移动时的朝向:(1)使用代码控制多张图片进行轮换;(2)代码控制单张图片进行旋转
private SpriteRenderer sr;
private void Awake
sr =
第一张是0
第二张是8
第三张是16
第四张是24
第五章是28
控制方向转向一致
0
8
16
24
水平=h Horizontal
垂直=v Vertical
public float moveSpeed=3; //声明一个移速,默认=3
private SpriteRenderer sr; //声明一个私有的SpriteRenderer 常量为“sr”
private void Awake(){
sr=GetComponent<SpriteRenderer>();
}
0 8 16 24
坦克移动时改变显示
获得精灵渲染
精灵数组
把图片拖入数组
hとvの値で方向をコントロール
全ての参照はAwakeの中設定
Input.GetAxisRaw(); 比 Input.GetAxis():
具体的区别不清楚,但是在测试时无意间发现,前者比后者接收的按键的速度更快的样子,在按键时图片的切换功能,使用了后者的话,明显感觉到了延迟感。
原来前者是返回的只有0或1,-1,而后者是包含之间的小数点。
定义一个精灵类型的数组:
private SpriteRenderer sr;
public Sprite[] tankSprites;
精灵
if (h<0)
{
sr.sprite = tankSprites[3];
}else if(h>0 )
{
sr.sprite = tankSprites[1];
}
if (v < 0)
{
sr.sprite = tankSprites[2];
}else if (v>0)
{
sr.sprite = tankSprites[0];
}
方法一:
通过素材的图片控制Player的方向转动
Player
private SptiteRenderer srl
Update()