2016-04-14 14 views
1

私は2Dのゲームのために団結でソート層の順序を変更しようとしていますが、以下のスクリプトは私のために働いていない正しく機能しませんゲームを実行する前にインスペクタウィンドウの統一ソート順は

EDIT

これが今の私のコードです:ユーザーはので、私は文が正しく実行されているかどうかを知るdeadGuyのY位置を下回る場合

using UnityEngine; 
using System.Collections; 

public class LevelManager : MonoBehaviour { 

    public GameObject player; 
    public GameObject deadGuy; 
    public bool belowTheY; 

    // Use this for initialization 
    void Start() { 

     deadGuy.GetComponent<SpriteRenderer>().sortingOrder = 2; 

    } 

    // Update is called once per frame 
    void Update() { 

     if (player.transform.localPosition.y < deadGuy.transform.localPosition.y) 
     { 
      belowTheY = true; 
      deadGuy.GetComponent<SpriteRenderer>().sortingOrder = 0; 

     } else 
     { 
      belowTheY = false; 
      deadGuy.GetComponent<SpriteRenderer>().sortingOrder = 2; 
     } 

    } 
} 

bekowTheYが活性化されます。しかし、ソートレイヤーは変更されていません

+0

何が問題なのですか?そのプロパティはエディタで変更されますが、イメージは必要な順序で表示されませんか? Update関数の 'deadGuy.sortingOrder = 2;'をUpdate関数内のコードにコメントするのはどうですか?エディタでSpriteRendererを選択し、sortingOrderがプロパティを変更したかどうかを確認します。 – Programmer

+0

deadGuyオブジェクトを見ると、ソートレイヤーはまったく変更されていないことがわかります。それはちょうど2(インスペクタウィンドウで設定されたプロパティ)にとどまります –

+0

私はそれをUpdate関数に置いたと言ったとき、私は 'Start'関数を意味しました。もう一つ。あなたのアップデート内のすべてのコードを削除し、 'DeadGuy.sortingOrder = 4;'をStart関数に置きます。私はあなたのコードが動作しているかどうかを確認したい。エディターで値を教えてください。 – Programmer

答えて

0

プレーヤーオブジェクトはソート順が0だったようですので、deadGuyオブジェクトがソート順0にスクリプトされていても、それは優先順位のためにまだ前に表示されていました。