当玩家团结一致时,如何让图像出现

时间:2014-03-09 15:59:18

标签: c# unity3d

我需要在玩家死亡或坠毁时弹出一个图像,但我不知道该怎么做,我正在尝试使用c#进行统一游戏  但我已经制作了一个代码,告诉用户在开始之前显示图像(点击开始图像),我想做的就是显示另一个告诉用户重新开始的图像 代码必须与此类似吗?还是我必须从头开始?

public class StartScreenScript : MonoBehaviour {

    static bool sawOnce = false;

    // Use this for initialization
    void Start () {
        if(!sawOnce) {
            GetComponent<SpriteRenderer>().enabled = true;
            Time.timeScale = 0;
        }

        sawOnce = true;
    }

    // Update is called once per frame
    void Update () {
        if(Time.timeScale==0 && (Input.GetKeyDown(KeyCode.Space) || Input.GetMouseButtonDown(0)) ) {
            Time.timeScale = 1;
            GetComponent<SpriteRenderer>().enabled = false;

        }
    }
}

此代码显示一个图像,告诉用户点击屏幕,然后图像消失,直到用户关闭游戏然后重新开启,但是每次玩家死亡时我想显示“你死了的图像”有人请帮助我

p.s这是第二场比赛

2 个答案:

答案 0 :(得分:0)

一种方法是使用Unity3D的GUI.DrawTexture给定纹理在给定位置绘制它。以下是对该方法的示例调用。

GUI.DrawTexture(new Rect(leftAnchor, topAnchor, textureWidth, textureHeight), textureSource);

答案 1 :(得分:0)

这是我的方法,在大多数情况下都适用:

  • 创建一个可用作死屏幕的GameObject。应用精灵 或任何告诉用户点击重启的内容。
  • 将之前的GameObject添加到PlayerController,以便他可以 实例化它。
  • 当玩家死亡时,请致电PlayerController.ShowDeadScreen()
  • 当用户点击DeadScreen GameObject时,它会调用你的 PlayerController.PlayAgain功能并摧毁自己。所以你必须处理一切 游戏需要重新启动。

PlayerController示例代码

public class PlayerController : MonoBehaviour {

    public GameObject deadScreen;

    void Start() { }

    void Update() { }

    public void ShowDeadScreen()
    {
        // show DeadScreen GameObject on the center of the screen
        GameObject go = Instantiate(deadScreen, new Vector(0, 0, 0), Quaternation.Identity) as GameObject;
        go.playerController = this;
    }

    public void PlayAgain()
    {
        // handle game restart
    }

}

DeadScreen示例代码

public class DeadScreen : MonoBehaviour {

    public PlayerController playerController;

    void Start() { }

    void Update() { }

    void OnMouseDown()
    {
        // when user clicks inside this GameObject start the game again
        playerController.PlayAgain();
        Destroy(this.gameObject);
    }

}