移動優先級的添加,2D渲染層級問題
阿新 • • 發佈:2019-05-08
pla cnblogs reg nsf ack system class blog width
bug修改:
1、上下移動和左右移動同時存在時,坦克會斜著移動
解決:增加移動優先級
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Player : MonoBehaviour { public float moveSpeed;//坦克移動速度 private SpriteRenderer sprRenderer;//存儲圖片的引用 public Sprite[] sprMove;//移動切換圖片 private voidAwake() { sprRenderer = this.GetComponent<SpriteRenderer>(); //獲取圖片的引用 } void Start () { } void Update () { } private void FixedUpdate() { float h = Input.GetAxisRaw("Horizontal");//獲取水平輸入 float v = Input.GetAxisRaw("Vertical");//獲取垂直輸入 #region 移動圖片切換 if (h > 0) { sprRenderer.sprite = sprMove[0];//右移 } else if (h < 0) { sprRenderer.sprite = sprMove[1];//左移 } transform.Translate(Vector3.right * h * moveSpeed * Time.deltaTime);//水平移動 //設置移動優先級 if (h != 0) { return; } if (v > 0) { sprRenderer.sprite = sprMove[2];//上移 } else if (v < 0) { sprRenderer.sprite = sprMove[3];//下移 } transform.Translate(Vector3.up * v * moveSpeed * Time.deltaTime);//垂直移動 #endregion #region 圖片旋轉 #endregion } }
渲染優先級
SortingLayer:層級
OrderInLayer:渲染層級,層級越大的時候越後渲染,後渲染的顯示在最上面
0層級:子彈、爆炸特效
1層級:森林
2層級:坦克
移動優先級的添加,2D渲染層級問題