Пример #1
0
    public void Awake()
    {
        instance = this;
        Physics.autoSimulation = false;

        boxTransform = box.transform;

        // Define and read arguments
        ArgumentParser argParser = new ArgumentParser();

        argParser.AddArgument("-targetFrameRate", false, "50");
        argParser.AddArgument("-portAgentSend", false, "26001");
        argParser.AddArgument("-portAgentReceive", false, "26000");
        argParser.AddArgument("-controlRotation", false, "1");
        argParser.AddArgument("-controlVelocity", false, "0");
        argParser.AddArgument("-autoRollTarget", false, "1");
        argParser.AddArgument("-autoTargetMin", false, "-45");
        argParser.AddArgument("-autoTargetMax", false, "45");
        argParser.AddArgument("-rotStartMin", false, "-20");
        argParser.AddArgument("-rotStartMax", false, "20");
        argParser.AddArgument("-angVelStartMin", false, "-5");
        argParser.AddArgument("-angVelStartMax", false, "5");
        argParser.AddArgument("-velStartMin", false, "-10");
        argParser.AddArgument("-velStartMax", false, "10");
        argParser.ParseArguments();

        // Read arguments
        Application.targetFrameRate = argParser.GetIntArgument("-targetFrameRate");
        QualitySettings.vSyncCount  = 0;

        externalAgent    = argParser.arguments["-portAgentSend"].isSupplied && argParser.arguments["-portAgentReceive"].isSupplied;
        portAgentSend    = argParser.arguments["-portAgentSend"].valueInt;
        portAgentReceive = argParser.arguments["-portAgentReceive"].valueInt;
        controlRotation  = argParser.arguments["-controlRotation"].valueInt == 1;
        controlVelocity  = argParser.arguments["-controlVelocity"].valueInt == 1;
        autoRollTarget   = argParser.arguments["-autoRollTarget"].valueInt == 1;
        autoTargetMin    = argParser.arguments["-autoTargetMin"].valueFloat;
        autoTargetMax    = argParser.arguments["-autoTargetMax"].valueFloat;
        rotStartMin      = argParser.arguments["-rotStartMin"].valueFloat;
        rotStartMax      = argParser.arguments["-rotStartMax"].valueFloat;
        angVelStartMin   = argParser.arguments["-angVelStartMin"].valueFloat;
        angVelStartMax   = argParser.arguments["-angVelStartMax"].valueFloat;
        velStartMin      = argParser.arguments["-velStartMin"].valueFloat;
        velStartMax      = argParser.arguments["-velStartMax"].valueFloat;

        // Instantiate agent controller (external or local human controller)
        if (externalAgent)
        {
            agentController = new BoxExternalAgentController(observationDimension, actionDimension, portAgentSend, portAgentReceive);
        }
        else
        {
            agentController = new BoxHumanAgentController(boxInputReader);
        }

        // Initiate environment
        ResetEnvironment();
    }
Пример #2
0
    private void CheckScoreAndEvent()
    {
        BoxGameManager.onLandDele();

        if (!BoxGameManager.isGameOver)
        {
            BoxGameManager.GetInstance().SendScore();
        }
    }
Пример #3
0
    public static Vector3 CalculateCreatePos(BoxGameManager bgm)
    {
        Transform tmp = bgm.landedBox.transform;

        float newPosX = Mathf.Abs(tmp.localScale.x) + Mathf.Abs(tmp.position.x);

        Vector3 pos = new Vector3(CheckSign(tmp.position.x, bgm) * newPosX, tmp.position.y, -5);

        return(pos);
    }
Пример #4
0
    private void Start()
    {
        boxParent = GameObject.Find("BoxParent");

        bgm = GameObject.Find("GameManager").GetComponent <BoxGameManager>();

        boxParent.GetComponent <BoxParent>().AddBox(gameObject);

        gameObject.transform.SetParent(boxParent.transform);
    }
Пример #5
0
    private void CreateObj()
    {
        if (BoxGameManager.GetInstance().currentBox == null)
        {
            BoxGameManager.GetInstance().currentBox = box;
        }

        newBox = Instantiate(BoxGameManager.GetInstance().currentBox, genPos.position, Quaternion.identity);
        newBox.gameObject.tag = "Box";

        IsLanded = !IsLanded;
    }
Пример #6
0
    public void SetBoxSize()
    {
        moverBox.transform.position = BoxGameManager.GetInstance().currentBox.transform.position;

        moverBox.transform.localScale = BoxGameManager.GetInstance().currentBox.transform.localScale;

        GeneratorMove.correctionValue = (basicValue - moverBox.transform.localScale.x) / 2f; // 제너레이터 무브의 이동 수치 증감

        Debug.Log((basicValue - moverBox.transform.localScale.x) / 2f);

        moverBox.transform.localPosition = Vector3.zero;
    }
Пример #7
0
    //// 잘라진박스의 색갈 트리거등 잡설정셋팅
    public static void CalculateScatter(GameObject scattering, BoxGameManager bgm)
    {
        Transform tmp = bgm.landedBox.transform;

        float newScaleX = bgm.prevBox.transform.localScale.x - tmp.localScale.x;

        scattering.transform.localScale = new Vector3(newScaleX, tmp.localScale.y, tmp.localScale.z);

        scattering.tag = "Player";

        scattering.AddComponent <ScatteringMovement>().sign = CheckSign(tmp.position.x, bgm);

        SetScattering(scattering);
    }
Пример #8
0
    public static int CheckSign(float landTrX, BoxGameManager bgm)
    {
        int sign = 1;

        //크면 오른쪽 작으면  왼쪽에서 생성됨
        if (landTrX > bgm.prevBox.transform.position.x)
        {
            sign = 1;
        }
        else
        {
            sign = -1;
        }
        return(sign);
    }
Пример #9
0
    //현재 박스를 이전 땅에 닿은 박스와 계산해서 자르는 것
    public static void CaculateCurrentBox(GameObject obj, BoxGameManager bgm)
    {
        Transform currentBoxTr = obj.transform;

        Transform landedBox = bgm.landedBox.transform;

        float trX = (landedBox.position.x - currentBoxTr.position.x);

        currentBoxTr.position = new Vector3(currentBoxTr.position.x + (trX / 2), currentBoxTr.position.y, currentBoxTr.position.z);

        currentBoxTr.localScale = new Vector3(currentBoxTr.localScale.x - Mathf.Abs(trX), currentBoxTr.localScale.y, currentBoxTr.localScale.z);

        bgm.currentBox = obj;

        obj.name = "LandedBox";
    }
Пример #10
0
    // Use this for initialization
    void Start()
    {
        if (instance == null)
        {
            instance = this;
        }
        else if (instance != this)
        {
            Destroy(gameObject);
        }

        ExitWindow.SetActive(false);
        WinWindow.SetActive(false);
        LoseWindow.SetActive(false);
        isClosedBettingWindow = false;
        arrowCount            = 0;
        timeCount             = 0;
        tempArrow             = "";
        whatTimesLeft.text    = "남은 시간 : " + (26 - timeCount);
        getMoney = false;
        SoundManager.PlaySound("bgm_floor2");
        //StartCoroutine(CreateArrowBox());
    }
 public void OnClickRestart()
 {
     BoxGameManager.GetInstance().RestartGame();
 }
Пример #12
0
 private void Awake()
 {
     instance = this;
 }