c#unity如果是keycode,如果是gold> 30买这个

时间:2015-10-15 16:28:48

标签: c# unity3d

我对c#和团结都很陌生。除了我的代码是可怕的凌乱。当我按1,2或3时,为什么我的店铺场景不起作用? 游戏是基于文本的,其他一切工作到目前为止,但是这个。

using UnityEngine;
using UnityEngine.UI;
using System.Collections;

public class TextController : MonoBehaviour 
{
    public Text text;
    private enum States {forest, forest_explore, forest_stay, forest_stay2, forest_explore2, village, village_shop, village_shopping, village_talk};
    private States mystate;
    public Text healthtxt;
    public Text goldtxt;
    public Text damagetxt;
    public Text armourtxt;
    public Text notify;
    public int health = 20;
    public int damage;
    public int goldnmb = 30;
    public int armour;

    // Use this for initialization
    void Start () 
    {
        goldtxt.text = "Gold: 30";
        healthtxt.text = "Health: 20/20";
        damagetxt.text = "Damage: ";
        armourtxt.text = "Armour: ";
        mystate = States.forest;
    }

    // Update is called once per frame
    void Update () 
    {
        if(mystate == States.forest) // BEGINNING FOREST
        {
            state_forest();
        }
        else if (mystate == States.forest_explore) //EXPLORATION IN FOREST 1 STATEMENT
        {
            text.text = "You explore the darkness and find a rusted broadsword on the dry ground"+
                "\n\nWith your new sword. Do you stay the night or continue exploring"+
                    "\n(press z to explore or x to stay where you are)";
            notify.text = "You Got the rusted broadsword!";
            damagetxt.text = "damage: " + damage.ToString();
            damage = 3;
            state_forest2();
            if(mystate == States.forest_explore2) //EXPLORATION IN FOREST 2 STATEMENT
            {
                text.text = "You've been exploring for hours and you see a small light in the distance"+
                    ". When you reach the light you see a person. you walk up to them and ask where the nearest town is"+
                        ".\nHe points north and says 'Be careful out there. Things can be dangerous with out a light'"+
                        "\nYou tell him that you'll be fine and eventually reach the town."+
                        "\nYou sleep at an inn.";
                mystate = States.village;

            }
            else if(mystate == States.forest_stay2) //STAY IN FOREST 2
            {
                text.text = "You wake up in an inn. The innkeeper says\n 'What are you stupid! Staying outside without a light. Idiot...'";
                mystate = States.village;
            }
        }
            else if (mystate == States.forest_stay) // STAY IN FOREST 1
            {
                text.text = "You hear deep groans and high pitched laughter from the darkness"+
                    "\n\n\n"+
                    "!!!GAME OVER!!!";

            }
        if(mystate == States.village) //VILLAGE SCENE
        {
            state_village();
            if(mystate == States.village_shop) //VILLAGE BUYING ITEM
            {
                text.text = "A dagger costs 10 gold and does 10 damage. "+
                    "\n A sword costs 25 gold and does 15 damage. "+
                        "A battle axe costs 40 gold and does 25 damage. "+
                        "\n (press 1 for dagger, 2 for sword or 3 for battle axe)";
                state_shopping();
            }
            else if(mystate == States.village_talk) //VILLAGE TALKING
            {

            }


        }
    }



    void state_forest()
    {
        text.text = "You wake up in the harsh, cold, darkness of midnight with no weapons or equipment" +
            " (press z to explore or x to stay where you are)";

        if(Input.GetKeyDown(KeyCode.Z))
        {
            mystate = States.forest_explore;
        }
        else if(Input.GetKeyDown(KeyCode.X))
        {
            mystate = States.forest_stay;
        }
    }
    void state_forest2()
    {
        if(Input.GetKeyDown(KeyCode.Z))
        {
            mystate = States.forest_explore2;
        }
        else if(Input.GetKeyDown(KeyCode.X))
        {
            mystate = States.forest_stay2;
        }
    }

    void state_village()
    {
        text.text = "You walk outside and it's still dark you think to yourself. 'Where you asleep all day?' "+
            "everyone is carrying a lantern but you. You see a sign that says weapons. \nDo you talk to the villagers or buy equipment? "+
                "(press q to buy weapons or w to talk to the villagers. You can return later.)";
        notify.text = "";
        if(Input.GetKeyDown(KeyCode.Q))
        {
            mystate = States.village_shop;
        }
        else if(Input.GetKeyDown(KeyCode.W))
        {
            mystate = States.village_talk;
        }
    }
    void state_shopping()
    {
        if(Input.GetKeyDown(KeyCode.Keypad1) && goldnmb > 10)
        {
            goldnmb = goldnmb - 10;
            goldtxt.text = "Gold: " + goldnmb.ToString();
            damage = 10;
            damagetxt.text = "Damage: " + damage.ToString();
        }
        else if(Input.GetKeyDown(KeyCode.Keypad2) && goldnmb > 25)
        {
            goldnmb = goldnmb - 25;
            goldtxt.text = "Gold: " + goldnmb.ToString();
            damage = 15;
            damagetxt.text = "Damage: " + damage.ToString();
        }
        else if(Input.GetKeyDown(KeyCode.Keypad3) && goldnmb > 40)
        {
            goldnmb = goldnmb - 40;
            goldtxt.text = "Gold: " + goldnmb.ToString();
            damage = 25;
            damagetxt.text = "Damage: " + damage.ToString();
        }
    }
}

1 个答案:

答案 0 :(得分:1)

我打赌你使用你的阿尔法键,甚至不知道它

试试这个:

if((Input.GetKeyDown(KeyCode.Alpha1)
   || Input.GetKeyDown(KeyCode.Keypad1))
   && goldnmb > 10)

编辑:state_shopping如何在这里跑? mystate必须在同一时间同等地States.villageStates.village_shop

if(mystate == States.village) //VILLAGE SCENE
{
    state_village();
    if(mystate == States.village_shop) //VILLAGE BUYING ITEM
    {
        text.text = "...";
        state_shopping();
    }