예제 #1
0
    public GameObject GetGameObjectFromShap(ROAD_SHAPE rShap)
    {
        GameObject gmReturn = null;

        switch (rShap)
        {
        case ROAD_SHAPE.RS_STRAIGHT:
            gmReturn = roadPrefabs[0];
            break;

        case ROAD_SHAPE.RS_RGIHT_TURN:
            gmReturn = roadPrefabs[1];
            break;

        case ROAD_SHAPE.RS_LEFT_TURN:
            gmReturn = roadPrefabs[2];
            break;

        case ROAD_SHAPE.RS_LEFT_TURN_UP:
            gmReturn = roadPrefabs[3];
            break;

        case ROAD_SHAPE.RS_LEFT_ROTATE_UP:
            gmReturn = roadPrefabs[4];
            break;

        case ROAD_SHAPE.RS_BRIDGE_1:
            gmReturn = roadPrefabs[5];
            break;

        case ROAD_SHAPE.RS_BRDIGE_2:
            gmReturn = roadPrefabs[6];
            break;

        case ROAD_SHAPE.RS_HILL_DOWN:
            gmReturn = roadPrefabs[7];
            break;

        case ROAD_SHAPE.RS_TRAMPLINE:
            gmReturn = roadPrefabs[8];
            break;

        case ROAD_SHAPE.RS_START:
            gmReturn = roadPrefabs[9];
            break;

        case ROAD_SHAPE.RS_END:
            gmReturn = roadPrefabs[10];
            break;

        case ROAD_SHAPE.RS_EMPTY:
            break;

        default:
            break;
        }

        return(gmReturn);
    }
예제 #2
0
    public string GetStringFromShape(ROAD_SHAPE rShape)
    {
        string str = "";

        switch (rShape)
        {
        case ROAD_SHAPE.RS_START:
            str = "RS_START";
            break;

        case ROAD_SHAPE.RS_END:
            str = "RS_END";
            break;

        case ROAD_SHAPE.RS_BRDIGE_2:
            str = "RS_BRDIGE_2";
            break;

        case ROAD_SHAPE.RS_BRIDGE_1:
            str = "RS_BRIDGE_1";
            break;

        case ROAD_SHAPE.RS_HILL_DOWN:
            str = "RS_HILL_DOWN";
            break;

        case ROAD_SHAPE.RS_LEFT_ROTATE_UP:
            str = "RS_LEFT_ROTATE_UP";
            break;

        case ROAD_SHAPE.RS_LEFT_TURN:
            str = "RS_LEFT_TURN";
            break;

        case ROAD_SHAPE.RS_LEFT_TURN_UP:
            str = "RS_LEFT_TURN_UP";
            break;

        case ROAD_SHAPE.RS_RGIHT_TURN:
            str = "RS_RGIHT_TURN";
            break;

        case ROAD_SHAPE.RS_STRAIGHT:
            str = "RS_STRAIGHT";
            break;

        case ROAD_SHAPE.RS_TRAMPLINE:
            str = "RS_TRAMPLINE";
            break;

        default:
            break;
        }

        return(str);
    }
예제 #3
0
    public void AddObjectInfoToObjList(ROAD_SHAPE rShape, int idx)
    {
        GameObject gmObj = GameObject.Instantiate(objButton.gameObject) as GameObject;

        gmObj.name = idx.ToString();
        gmObj.transform.GetChild(0).gameObject.GetComponent <Text>().text = idx.ToString() + "__" + GetStringFromShape(rShape);
        gmObj.transform.parent = roadContent.transform;

        UpdateScrollSizeDelta();
    }
예제 #4
0
    public bool CheckIfChangeDirectionObject(ROAD_SHAPE rShape)
    {
        bool state = false;

        if (rShape == ROAD_SHAPE.RS_LEFT_ROTATE_UP || rShape == ROAD_SHAPE.RS_LEFT_TURN || rShape == ROAD_SHAPE.RS_RGIHT_TURN || rShape == ROAD_SHAPE.RS_LEFT_TURN_UP)
        {
            return(true);
        }

        return(state);
    }
예제 #5
0
    //get trigger enter object to check what kind of object crashed
    private void OnTriggerEnter(Collider col)
    {
        UnityEngine.Debug.Log(col.gameObject.name + " ---- " + col.gameObject.transform.parent.gameObject.name);

        if (col.name == "end")
        {
            if (curDirection != targetDirection)
            {
                curDirection = targetDirection;
                //SetForce();
            }
        }
        else if (col.name == "start")
        {
            curEnteredOBj = col.gameObject.transform.parent.gameObject;
            int        dir   = col.transform.parent.gameObject.GetComponent <CRoadObject>().curObjDirection;
            ROAD_SHAPE rShap = col.transform.parent.gameObject.GetComponent <CRoadObject>().rShape;

            curObjShape = rShap;

            if (CheckIfChangeDirectionObject(curObjShape))
            {
                //start point
                Vector3 startPosition = col.transform.parent.gameObject.GetComponent <CRoadObject>().startPos.transform.localPosition;
                Vector3 endPosition   = col.transform.parent.gameObject.GetComponent <CRoadObject>().endPos.transform.localPosition;

                targetDirection = dir;
            }
        }
        else if (col.name.Contains("particle"))
        {
            col.gameObject.GetComponent <PassCelebration>().ShowPasseedParticle();
        }

        //if (col.CompareTag("obstacle") && !this.fever)
        //{
        //	this.counter += 1f;
        //}
        //if (col.CompareTag("Finish"))
        //{
        //	this.won = true;
        //	PlayerPrefs.SetInt("level", PlayerPrefs.GetInt("level") + 1);
        //	this.finishPanel.gameObject.SetActive(true);
        //          UnityEngine.Object.Instantiate<GameObject>(this.gManager.particalEffect, col.gameObject.transform.position + new Vector3(0f, 0f, 5f), Quaternion.Euler(-90f, 0f, 0f));
        //}
        //if (col.CompareTag("gems"))
        //{
        //	this.score++;
        //	UnityEngine.Object.Destroy(col.gameObject);
        //	this.scoreText.text = "Gems: " + this.score;
        //}
//        this.rb.AddForce(0f, 0f, 3f, ForceMode.Impulse);
    }
예제 #6
0
    public void AddLevelObject(GameObject gmObj)
    {
        ROAD_SHAPE rShape      = gmObj.GetComponent <RoadObjectCell>().rShape;
        GameObject gmTargetObj = GetGameObjectFromShap(rShape);

        if (roadParent.transform.childCount == 0 && rShape != ROAD_SHAPE.RS_START)
        {
            return;
        }
        else if (roadParent.transform.childCount == 0 && rShape == ROAD_SHAPE.RS_START)
        {
            LocateGameObjectToPosition(gmTargetObj, 0);
        }
        else
        {
            LocateGameObjectToPosition(gmTargetObj, roadParent.transform.childCount);
        }
    }
예제 #7
0
 public void Init(ROAD_SHAPE shape, Vector3 startpos)
 {
 }
예제 #8
0
    public int GetDirectionFromPevObj(GameObject prevObj, ROAD_SHAPE nRshape)
    {
        int direction = 0;

        int prevDirection = prevObj.GetComponent <CRoadObject>().curObjDirection;

        ROAD_SHAPE prevRShape = prevObj.GetComponent <CRoadObject>().rShape;

        if (CheckIfChangeDirectionObject(nRshape))
        {
            if (prevDirection == 0)
            {
                switch (nRshape)
                {
                case ROAD_SHAPE.RS_LEFT_TURN:
                    direction = 1;
                    break;

                case ROAD_SHAPE.RS_RGIHT_TURN:
                    direction = 2;
                    break;

                case ROAD_SHAPE.RS_LEFT_TURN_UP:
                    direction = 1;
                    break;

                case ROAD_SHAPE.RS_LEFT_ROTATE_UP:
                    direction = 3;
                    break;
                }
            }
            else if (prevDirection == 1)
            {
                switch (nRshape)
                {
                case ROAD_SHAPE.RS_LEFT_TURN:
                    direction = 3;
                    break;

                case ROAD_SHAPE.RS_RGIHT_TURN:
                    direction = 0;
                    break;

                case ROAD_SHAPE.RS_LEFT_TURN_UP:
                    direction = 3;
                    break;

                case ROAD_SHAPE.RS_LEFT_ROTATE_UP:
                    direction = 2;
                    break;
                }
            }
            else if (prevDirection == 2)
            {
                switch (nRshape)
                {
                case ROAD_SHAPE.RS_LEFT_TURN:
                    direction = 0;
                    break;

                case ROAD_SHAPE.RS_RGIHT_TURN:
                    direction = 3;
                    break;

                case ROAD_SHAPE.RS_LEFT_TURN_UP:
                    direction = 0;
                    break;

                case ROAD_SHAPE.RS_LEFT_ROTATE_UP:
                    direction = 1;
                    break;
                }
            }
            else if (prevDirection == 3)
            {
                switch (nRshape)
                {
                case ROAD_SHAPE.RS_LEFT_TURN:
                    direction = 2;
                    break;

                case ROAD_SHAPE.RS_RGIHT_TURN:
                    direction = 1;
                    break;

                case ROAD_SHAPE.RS_LEFT_TURN_UP:
                    direction = 1;
                    break;

                case ROAD_SHAPE.RS_LEFT_ROTATE_UP:
                    direction = 0;
                    break;
                }
            }
        }
        else
        {
            return(prevDirection);
        }
        return(direction);
    }
예제 #9
0
    public void LocateGameObjectToPosition(GameObject gmObj, int idx)
    {
        ROAD_SHAPE nRshape = gmObj.GetComponent <CRoadObject>().rShape;

        if (gmObj.GetComponent <CRoadObject>().rShape == ROAD_SHAPE.RS_START)
        {
            GameObject gmobjNew = GameObject.Instantiate(gmObj) as GameObject;
            gmobjNew.name             = "start";
            gmobjNew.transform.parent = roadParent.transform;
            AddObjectInfoToObjList(nRshape, idx);
            return;
        }

        if (roadParent.transform.childCount > 0 && gmObj.GetComponent <CRoadObject>().rShape == ROAD_SHAPE.RS_START)
        {
            return;
        }

        if (roadParent.transform.childCount < idx - 2)
        {
            return;
        }

        GameObject prevObject = roadParent.transform.GetChild(idx - 1).gameObject;

        int nDirection = GetDirectionFromPevObj(prevObject, nRshape);

        GameObject nAddedObj = GameObject.Instantiate(gmObj) as GameObject;

        nAddedObj.name             = roadParent.transform.childCount.ToString();
        nAddedObj.transform.parent = roadParent.transform;

        float rotationAngle = 0;

        if (prevObject.GetComponent <CRoadObject>().curObjDirection == 0)
        {
            rotationAngle = 0;
        }
        else if (prevObject.GetComponent <CRoadObject>().curObjDirection == 1)
        {
            rotationAngle = -90f;
        }
        else if (prevObject.GetComponent <CRoadObject>().curObjDirection == 2)
        {
            rotationAngle = 90f;
        }
        else if (prevObject.GetComponent <CRoadObject>().curObjDirection == 3)
        {
            rotationAngle = 180;
        }
        nAddedObj.transform.localEulerAngles = new Vector3(0, rotationAngle, 0);
//        nAddedObj.transform.localRotation.eulerAngles = new Vector3(0, rotationAngle, 0);

        nAddedObj.transform.position = prevObject.GetComponent <CRoadObject>().endPos.transform.position;
        nAddedObj.GetComponent <CRoadObject>().curObjDirection = nDirection;

        if (nRshape == ROAD_SHAPE.RS_STRAIGHT)
        {
            if (nDirection == 0)
            {
                nAddedObj.transform.localPosition += new Vector3(0, 0, 5);
            }
            else if (nDirection == 1)
            {
                nAddedObj.transform.localPosition += new Vector3(-5, 0, 0);
            }
            else if (nDirection == 2)
            {
                nAddedObj.transform.localPosition += new Vector3(5, 0, 0);
            }
            else if (nDirection == 3)
            {
                nAddedObj.transform.localPosition += new Vector3(0, 0, -5);
            }
        }

        AddObjectInfoToObjList(nRshape, idx);
    }