-
準(zhǔn)備
四張圖
背景
這里寫圖片描述
這里寫圖片描述
這里寫圖片描述
以上
-
將圖片拖入工具中
這里寫圖片描述 -
為除背景之外的每一張圖三都建立一個視圖層
這里寫圖片描述
這里寫圖片描述 -
選擇僵尸的圖片,如圖操作,準(zhǔn)備將圖片切割
這里寫圖片描述
這里寫圖片描述
這里寫圖片描述 -
在此可以選擇需要適配的分辨率,也可以自己定義
這里寫圖片描述 -
觀察背景圖的像素和尺寸
這里寫圖片描述
由于背景的比例和我們所選的分辨率不和,在Main Camera中修改
這里寫圖片描述
640 / 100 / 2 = 3.2
這里寫圖片描述 建立一個c# Script腳本文件,來使我們所裁剪的僵尸圖片動起來
using UnityEngine;
using System.Collections;
public class Zembie : MonoBehaviour {
public Sprite[] sprites;//建立精靈數(shù)組,用來存儲剪下來的圖
public float framesspeed;//運(yùn)動的速度
private SpriteRenderer spriterenderer;//定義一個渲染器
// Use this for initialization
void Start () {
spriterenderer = GetComponent<SpriteRenderer>();
}
// Update is called once per frame
void Update () {
int index = (int)(Time.timeSinceLevelLoad * framesspeed);//指數(shù)來代表時間和速度的乘積
index = index % sprites.Length;//因為用來顯示精靈數(shù)組,大小不能超過精靈數(shù)組的長度
spriterenderer.sprite = sprites[index];//渲染器使圖片動起來
}
}
-
把腳本文件和僵尸圖片綁定
這里寫圖片描述
因為切了4張圖,所以size為4,將速度也填上
這里寫圖片描述 - 寫一個腳本使僵尸在Camera上發(fā)生位移
using UnityEngine;
using System.Collections;
public class ZembieControl : MonoBehaviour {
public float movespeed;
private Vector3 moveDirection; //vector3 三維 vector2 二維
public float turnspeed;//轉(zhuǎn)頭 以單元為尺寸
// Use this for initialization
void Start () {
moveDirection = Vector3.right;
}
// Update is called once per frame
void Update () {
Vector3 currentPostion = transform.position; //初始位置
if (Input.GetButton ("Fire1"))
{ //那是數(shù)字1 不是l Fire1就是鼠標(biāo)左鍵 Fire2就是鼠標(biāo)右鍵
Vector3 moveToward = Camera.main.ScreenToWorldPoint (Input.mousePosition);
//移動后的方向即為鼠標(biāo)左鍵所點(diǎn)的方向
moveDirection = moveToward - currentPostion;
moveDirection.z = 0;
moveDirection.Normalize ();//歸一化
}
Vector3 targetPostion = currentPostion + moveDirection * movespeed;//目標(biāo)方向
transform.position = Vector3.Lerp (currentPostion, targetPostion, Time.deltaTime);
//Vector3.Lerp()差值函數(shù)
//由于不是閃現(xiàn)到達(dá),所以需要時間差值移動(原位置,目標(biāo)位置,差值時間)
float tagetAngle = Mathf.Atan2 (moveDirection.y, moveDirection.x) * Mathf.Rad2Deg;
//求角度 2:to Mathf.Rad2Deg 弧度求角度
transform.rotation = Quaternion.Slerp (transform.rotation, Quaternion.Euler (0, 0, tagetAngle), turnspeed * Time.deltaTime);
//rotation 旋轉(zhuǎn) p1:目標(biāo)位置 p2:角度 p3:每次旋轉(zhuǎn)多少
}
}
-
把腳本綁定到僵尸圖片上,修改速度
這里寫圖片描述
運(yùn)行之后存有bug,鼠標(biāo)點(diǎn)擊之后僵尸會往那個方向跑,但是到達(dá)目的地之后并不會停下
- 未完待續(xù)