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