Exemplo n.º 1
0
        // Player Inputs.
        private void InputProcess()
        {
            // Mouse
            if (Input.GetMouseButtonUp(0) == false)
            {
                return;
            }

            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

            RaycastHit[] hits = Physics.RaycastAll(ray);

            foreach (var hit in hits)
            {
                // Camp OnClick or not
                CampOnClick CampClickScript = hit.transform.gameObject.GetComponent <CampOnClick>();
                if (CampClickScript != null)
                {
                    CampClickScript.OnClick();
                    return;
                }

                // Character OnClick or not
                SoldierOnClick SoldierClickScript = hit.transform.gameObject.GetComponent <SoldierOnClick>();
                if (SoldierClickScript != null)
                {
                    SoldierClickScript.OnClick();
                    return;
                }
            }
        }
Exemplo n.º 2
0
    // 玩家输入
    private void InputProcess()
    {
        //  Mouse左键
        if (Input.GetMouseButtonUp(0) == false)
        {
            return;
        }

        //由摄像机产生一条射线
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

        RaycastHit[] hits = Physics.RaycastAll(ray);

        // 走访每一个被Hit到的GameObject
        foreach (RaycastHit hit in hits)
        {
            // 是否有兵营点击
            CampOnClick CampClickScript = hit.transform.gameObject.GetComponent <CampOnClick>();
            if (CampClickScript != null)
            {
                CampClickScript.OnClick();
                return;
            }

            // 是否有角色点击
            SoldierOnClick SoldierClickScript = hit.transform.gameObject.GetComponent <SoldierOnClick>();
            if (SoldierClickScript != null)
            {
                SoldierClickScript.OnClick();
                return;
            }
        }
    }
Exemplo n.º 3
0
    //初始化俘兵营
    private void InitCamp(EnemyType enemyType)
    {
        GameObject gameObject     = null;
        string     gameObjectName = null;
        string     name           = null;
        string     iconSprite     = null;
        Vector3    position       = Vector3.zero;
        float      trainTime      = 0;

        switch (enemyType)
        {
        case EnemyType.Elf:
            gameObjectName = "CaptiveCamp_Elf";
            name           = "俘兵营";
            iconSprite     = "CaptiveCamp";
            trainTime      = 3;
            break;

        default:
            Debug.LogError("无法根据俘兵类型" + enemyType + "初始化兵营");
            break;
        }
        gameObject = GameObject.Find(gameObjectName);
        position   = UnityTool.FindChild(gameObject, "TrainPoint").transform.position;
        CaptiveCamp camp = new CaptiveCamp(gameObject, name, iconSprite, enemyType, position, trainTime);
        //添加监听点击脚本
        CampOnClick campOnClick = gameObject.AddComponent <CampOnClick>();

        campOnClick.Camp = camp;
        mCaptiveCamps.Add(enemyType, camp);
    }
Exemplo n.º 4
0
    // 设定兵营使用的Script
    private void AddCampScript(GameObject theGameObject, ICamp Camp)
    {
        // 加入Script
        CampOnClick CampScript = theGameObject.AddComponent <CampOnClick>();

        CampScript.theCamp = Camp;
    }
Exemplo n.º 5
0
    private void InitCamp(EnemyType enemyType)
    {
        string gameObjectName = null;
        string name           = "";

        string icon      = "";
        float  trainTime = 0f;

        switch (enemyType)
        {
        case EnemyType.Elf:
            gameObjectName = "CaptiveCamp_Elf";
            name           = "伏兵营";
            icon           = "CaptiveCamp";
            trainTime      = 3f;
            break;

        default:
            Debug.LogError("无法根据战士类型" + enemyType + "初始化兵营");
            break;
        }
        GameObject  gameObject  = gameObject = GameObject.Find(gameObjectName);
        Vector3     position    = UnityTool.FindChild(gameObject, "TrainPoint").transform.position;
        CaptiveCamp camp        = new CaptiveCamp(gameObject, name, icon, enemyType, position, trainTime);
        CampOnClick campOnClick = gameObject.AddComponent <CampOnClick>();

        campOnClick.camp = camp;
        mCamptiveCamp.Add(enemyType, camp);
    }
Exemplo n.º 6
0
    private void InitCamp(SoldierType soldierType)
    {
        GameObject gameObject     = null;
        string     gameObjectName = null;
        string     name           = null;
        string     iconSprite     = null;
        Vector3    position       = Vector3.zero;
        float      trainTime      = 0;

        switch (soldierType)
        {
        case SoldierType.Rookie:
            gameObjectName = "SoldierCamp_Rookie";
            name           = "新手兵营";
            iconSprite     = "RookieCamp";
            trainTime      = 3;
            break;

        case SoldierType.Sergeant:
            gameObjectName = "SoldierCamp_Sergeant";
            name           = "中士兵营";
            iconSprite     = "SergeantCamp";
            trainTime      = 4;
            break;

        case SoldierType.Captain:
            gameObjectName = "SoldierCamp_Captain";
            name           = "上尉兵营";
            iconSprite     = "CaptainCamp";
            trainTime      = 5;
            break;

        default:
            Debug.LogError("无法根据战士类型" + soldierType + "初始化兵营");
            break;
        }
        gameObject = GameObject.Find(gameObjectName);
        position   = UnityTool.FindChild(gameObject, "TrainPoint").transform.position;
        SoldierCamp camp = new SoldierCamp(gameObject, name, iconSprite, soldierType, position, trainTime);
        //添加监听点击脚本
        CampOnClick campOnClick = gameObject.AddComponent <CampOnClick>();

        campOnClick.Camp = camp;
        mSoldierCamps.Add(soldierType, camp);
    }