示例#1
0
    /// <summary>
    /// 通过玩家滑动的方向判断岩石移动的方向
    /// </summary>
    /// <param name="clickPosition"></param>
    void movingDirection(Vector3 clickPosition)
    {
        Vector3 nowPosition  = posDis + clickPosition;
        Vector3 moveDirction = Vector3.zero;
        //true==X,false==Y
        bool dir = true;

        lastClickPosition -= clickPosition;

        nowPosition.y = clickObj.transform.position.y;

        //判断岩石移动的方向
        int moveType = rockAttributes.getRockType(clickObj.transform.position);

        if (moveType == 11)
        {
            dir = Mathf.Abs(lastClickPosition.x) >= Mathf.Abs(lastClickPosition.z) ? true : false;
        }
        else if (moveType == 12)
        {
            dir = true;
        }
        else if (moveType == 13)
        {
            dir = false;
        }
        //确定岩石移动的方向
        float nestStep = 0.5f;

        if (dir == true)
        {
            nestStep     *= rockAttributes.rockSize.x;
            nowPosition.z = clickObj.transform.position.z;
            moveDirction  = lastClickPosition.x > 0 ? new Vector3(-nestStep, 0, 0) : new Vector3(nestStep, 0, 0);
        }
        else
        {
            nestStep     *= rockAttributes.rockSize.z;
            nowPosition.x = clickObj.transform.position.x;
            moveDirction  = lastClickPosition.z > 0 ? new Vector3(0, 0, -nestStep) : new Vector3(0, 0, nestStep);
        }

        lastClickPosition = clickPosition;

        if (gameMapController.isMovable(nowPosition + moveDirction) == true)
        {
            rockAttributes.markingGameMap(clickObj.transform.position, false);
            clickObj.transform.position = nowPosition;
        }
        else
        {
            posDis = clickObj.transform.position - clickPosition;
        }
    }
示例#2
0
    void getTopRock(Vector3 pos)
    {
        RaycastHit hit;

        if (Physics.Raycast(pos, gameMapController.rainRay, out hit, 1))
        {
            topRock = hit.collider.gameObject;
            topRock.transform.parent = gameObject.transform.transform;
            attributes = topRock.GetComponent <RockAttributes>();
            attributes.markingGameMap(topRock.transform.position, false);
        }
    }