Auto Scrolling Part II

CODE

void Awake () {
    /*中略*/   
    t2D = new Texture2D(100, 100);
    rt = new RenderTexture (Screen.width, Screen.height, 24, RenderTextureFormat.ARGB32);
    cam2.targetTexture = rt;
    pixPrev = new Color[] {Color.black};

    IssuePluginEvent (SurfaceEvent.Init);
}

IEnumerator Scroll (int dir) {
    if(!autoScrolling) {
        /*中略*/
        SendEvent (new Vector2(x, y), ActionEvent.Up);
        ifIsScrolling ();
        autoScrolling = false;
    }
}

Color[] pixPrev;
Texture2D t2D;
RenderTexture rt;
void ifIsScrolling () {
    Vector3 ScreenPos = cam2.WorldToScreenPoint (transform.position);
    cam2.Render ();
    RenderTexture.active = rt;
    t2D.ReadPixels (new Rect ((int)ScreenPos.x + 100, (int)ScreenPos.y, 100, 100), 0, 0, true);
    RenderTexture.active = null;

    Color[] pixNow = t2D.GetPixels (0, 0, 100, 100);
    isScrolling = !Enumerable.SequenceEqual (pixNow, pixPrev);
    pixPrev = pixNow;
}

DEMO

results matching ""

    No results matching ""