예제 #1
0
    public SampleContainer GenerateSampleSource(bool save)
    {
        float[] desiredOutput = GenerateDesiredOutput();
        bool    isOkay        = CheckIsOkayDesiredOutput(desiredOutput);

        if (!isOkay)
        {
            return(new SampleContainer(false));
        }

        float[] input = GenerateInputSource();
        isOkay = CheckIsOkayInput(input);

        if (!isOkay)
        {
            return(new SampleContainer(false));
        }

        SampleContainer sampleContainer = new SampleContainer(input, desiredOutput, CheckFilterDesiredOutput(desiredOutput), m_screenshotScriptThis.GetCaptureWidth(), m_screenshotScriptThis.GetCaptureHeight());

        if (save)
        {
            SaveSample(sampleContainer);
        }

        m_cacheSampleSource = sampleContainer;
        return(sampleContainer);
    }
예제 #2
0
    private void InitInfo()
    {
        m_areaSizePixel     = new Vector2Int(m_screenshotManager.GetCaptureWidth(), m_screenshotManager.GetCaptureHeight());
        m_areaSizeWorld     = new Vector2(m_captureArea.localScale.x, m_captureArea.localScale.y);
        m_distances         = new float[m_areaSizePixel.x];
        m_pixelSize         = m_screenshotManager.GetPixelToWorldScale(0);
        m_playerLengthWorld = m_visualCapturePlayer.localScale.x;
        m_playerLengthPixel = (int)Mathf.Ceil(m_playerLengthWorld / m_pixelSize);

        m_actualAdditionalRaycastHeight = Mathf.Min(-m_pixelSize * 0.51f, m_additionalRaycastHeight);
        m_raycastHeight = m_areaSizeWorld.y - m_actualAdditionalRaycastHeight;

        m_playerIndices          = new List <int>();
        m_playerPositionPixelMin = m_areaSizePixel.x - 1;
        m_playerPositionPixelMax = 0;

        m_distanceAhead    = m_raycastHeight;
        m_distanceLeftY    = m_raycastHeight;
        m_distanceRightY   = m_raycastHeight;
        m_dangerIndexLeft  = m_areaSizePixel.x - 1;
        m_dangerIndexRight = 0;
    }