コード例 #1
0
    void Awake()
    {
        GameObject go  = new GameObject("Wave Camera");
        Camera     cam = go.AddComponent <Camera>();

        go.transform.parent        = Camera.main.transform;
        go.transform.localPosition = Vector3.zero;
        go.transform.localRotation = Quaternion.identity;
        go.transform.localScale    = Vector3.one;

        cam.clearFlags      = CameraClearFlags.Color;
        cam.backgroundColor = new Color(0.5f, 0.5f, 1f, 1f);
        cam.cullingMask     = 0;

#if GL_VERSION
        m_WaveRenderer = cam.gameObject.AddComponent <WaveRenderer>();
#else
        scene = gameObject.GetComponent <WaveScene>();



        scene.RenderCam = cam;
#endif

        s_Self = this;
    }
コード例 #2
0
    /// <summary>
    /// Used to draw all points from the raycastPointsByRenderers List
    /// </summary>
    private void DrawLineRenderers()
    {
        // find out how many renderers do you need to draw the points
        int numberOfNeededRenderers = raycastPointsByRenderers.Count;

        int drawnRenderersCount = 0;

        // start drawing points with each renderer you have
        foreach (WaveRenderer renderer in renderers)
        {
            if (raycastPointsByRenderers.Count <= drawnRenderersCount)
            {
                renderer.SetPoints(null);
            }
            else
            {
                renderer.SetPoints(raycastPointsByRenderers[drawnRenderersCount]);
            }

            MaterialPropertyBlock block = new MaterialPropertyBlock();
            renderer.lineRenderer.GetPropertyBlock(block);
            Vector3 screenCoordinate = Camera.main.WorldToViewportPoint(this.transform.position);
            screenCoordinate.z = 0;
            block.SetVector("_Center", screenCoordinate);
            renderer.lineRenderer.SetPropertyBlock(block);

            drawnRenderersCount++;
        }

        // if you still need more renderers, add the rest as new child objects
        while (drawnRenderersCount < numberOfNeededRenderers)
        {
            GameObject newRenderer = Instantiate(lineRendererPrefab, Vector3.zero, Quaternion.identity, transform);
            newRenderer.transform.SetParent(this.transform);
            newRenderer.transform.position = this.transform.position;


            WaveRenderer waveRenderer = new WaveRenderer(newRenderer, raycastPointsByRenderers[drawnRenderersCount]);


            MaterialPropertyBlock block = new MaterialPropertyBlock();
            waveRenderer.lineRenderer.GetPropertyBlock(block);
            Vector3 screenCoordinate = Camera.main.WorldToScreenPoint(this.transform.position);
            screenCoordinate.z = 0;
            block.SetVector("_Center", screenCoordinate);
            waveRenderer.lineRenderer.SetPropertyBlock(block);


            renderers.Add(waveRenderer);
            drawnRenderersCount++;
        }
    }
コード例 #3
0
    public void InitUpdate()
    {
        if (m_WaveRenderer != WaveRenderer)
        {
            if (m_WaveRenderer != null)
            {
                m_WaveRenderer.Remove(this);
            }

            m_WaveRenderer = WaveRenderer;
            if (m_WaveRenderer != null)
            {
                m_WaveRenderer.Add(this);
            }
        }
    }
コード例 #4
0
    void Awake()
    {
        // Water Wave Camera
        GameObject go  = new GameObject("Water Wave Camera");
        Camera     cam = go.AddComponent <Camera>();

//		go.transform.parent = Camera.main.transform;
        go.transform.localPosition = Vector3.zero;
        go.transform.localRotation = Quaternion.identity;
        go.transform.localScale    = Vector3.one;

        cam.clearFlags      = CameraClearFlags.Color;
        cam.backgroundColor = new Color(0.5f, 0.5f, 1f, 1f);
        cam.cullingMask     = 0;
        cam.depth           = -2;

        m_WaveRenderer            = cam.gameObject.AddComponent <WaveRenderer>();
        m_WaveRenderer.CameraMode = WaveRenderer.ECameraMode.Perspective;

        // Grass Wave Camera
        go  = new GameObject("Grass Wave Camera");
        cam = go.AddComponent <Camera>();
//		go.transform.parent = Camera.main.transform;
        go.transform.localPosition = Vector3.zero;
        go.transform.localRotation = Quaternion.identity;
        go.transform.localScale    = Vector3.one;

        cam.clearFlags      = CameraClearFlags.Color;
        cam.backgroundColor = new Color(0.5f, 0.5f, 1f, 1f);
        cam.cullingMask     = 0;
        cam.depth           = -2;

        m_GrassWaveRenderer            = cam.gameObject.AddComponent <WaveRenderer>();
        m_GrassWaveRenderer.CameraMode = WaveRenderer.ECameraMode.Orthographical;


        s_Self = this;
    }