コード例 #1
0
        private PointInfo FindCrossPointOnWholePath(Vector3 vx, Vector3 vx1, Vector3 vx2, List <int> excludesIndex = null)
        {
            PointInfo info = null;

            for (int i = 0; i < movePoints.Length - 1; i++)
            {
                if (null != excludesIndex && excludesIndex.Contains(i))
                {
                    continue;
                }
                Vector3 p1     = movePoints[i];
                Vector3 p2     = movePoints [i + 1];
                Vector3 pInter = Vector3.zero;
                bool    cross  = Vector2DUtils.LineLineIntersection(out pInter, p1, p2 - p1, vx, vx1 - vx);
                if (!cross)
                {
                    cross = Vector2DUtils.LineLineIntersection(out pInter, p1, p2 - p1, vx, vx2 - vx);
                }
                if (!cross)
                {
                    continue;
                }
                if (0 != Vector2DUtils.PointOnWhichSideOfLineSegment(p1, p2, pInter))
                {
                    continue;
                }
                info            = new PointInfo();
                info.position   = pInter;
                info.startIndex = i;
                break;
            }

            return(info);
        }
コード例 #2
0
        IEnumerator DoLoop()
        {
            while (true)
            {
                ShakeConfig config     = configs [_curIndex];
                float       shakedTime = 0;
                while (true && shakedTime < config.time)
                {
                    Vector3 _position = transform.position;
                    if (!_pausing)
                    {
                        float m = config.scope * UnityEngine.Random.Range(-1f, 1f);
                        Vector2DUtils.ChangePosition(transform, _position.x + m, _position.y + m, _position.z);

                        shakedTime += Time.deltaTime;
                    }
//					Log.Debug (" 1111 ... {0}",gameObject.name);

                    yield return(new WaitForSeconds(config.interval));
                }
//				Log.Debug (" 2222 ... {0}",gameObject.name);
                _curIndex = (_curIndex + 1) % configs.Count;

                yield return(new WaitForSeconds(interval));
            }
        }
コード例 #3
0
        protected override void Reset()
        {
            base.Reset();
            animator.StopPlay();
            if (null != _cor)
            {
                StopCoroutine(_cor);
            }
            int colorIndex = UnityEngine.Random.Range(0, colors.Length);

            render.color = colors[colorIndex];
            Vector2[] scope  = Vector2DUtils.GetScreenScope();
            float     xbound = render.bounds.size.x * .5f;
            float     rightX = scope [1].x + xbound;
            float     leftX  = scope [0].x - xbound;
            float     speed  = UnityEngine.Random.Range(0.8f, Constants.speed_butterfly_move_max);
            float     startX = speed < Mathf.Lerp(0.5f, Constants.speed_butterfly_move_max, 0.5f)?rightX:leftX;
            float     startY = UnityEngine.Random.Range(scope[0].y, scope[1].y);

            transform.position = new Vector3(startX, startY, transform.position.z);
            Vector3 target1 = Camera.main.ScreenToWorldPoint(new Vector3(Screen.width * 0.5f, Screen.height * 0.5f, 0));

            target1.z = transform.position.z;
            gameObject.SetActive(true);
            _cor = StartCoroutine(DoUpdate(speed, target1));
        }
コード例 #4
0
        IEnumerator DoAttack()
        {
            attacking = true;
            Vector3 startPos = transform.position;
            Vector3 endPos   = transform.position + new Vector3(0, attackDistance, 0);

            while (transform.position.y - startPos.y < attackDistance)
            {
                if (!pausing)
                {
                    Vector2DUtils.MoveToSmoothly(transform, endPos, attackSpeed);
                }

                yield return(null);
            }

            while (transform.position.y - startPos.y > Mathf.Epsilon)
            {
                if (!pausing)
                {
                    Vector2DUtils.MoveToSmoothly(transform, startPos, attackSpeed);
                }

                yield return(null);
            }

            attacking = false;
            animRun.StartPlay();
            tracer.OnResume();
        }
コード例 #5
0
ファイル: Clouds.cs プロジェクト: imhazige/AeroEgg
        IEnumerator DoUpdate()
        {
            Vector2[] scope     = Vector2DUtils.GetScreenScope();
            float     maxHeight = scope [1].y - scope [0].y;

            while (true)
            {
                if (!pausing)
                {
                    int   index = UnityEngine.Random.Range(0, clouds.Length);
                    Cloud c     = clouds [index];
                    if (!c.running)
                    {
                        float height = UnityEngine.Random.Range(0, maxHeight);
                        float speed  = UnityEngine.Random.Range(0.05f, Constants.speed_cloud_move_max);
                        if (UnityEngine.Random.Range(0, 2) == 0)
                        {
                            speed *= -1;
                        }
                        float scale = UnityEngine.Random.Range(0.2f, 1.5f);
                        c.StartMove(height, speed, scale);
                    }
                }
                yield return(new WaitForSeconds(5f));
            }
        }
コード例 #6
0
ファイル: E2.cs プロジェクト: imhazige/AeroEgg
        protected override void DoInit()
        {
            base.DoInit();
            if (null == moveGuid)
            {
                moveGuid = GetComponentInChildren <EdgeCollider2D> ();
            }
            if (null == rigid)
            {
                rigid = GetComponent <Rigidbody2D> ();
            }
            if (null == collid2d)
            {
                collid2d = GetComponent <Collider2D> ();
            }

            rigid.isKinematic        = true;
            collid2d.isTrigger       = true;
            tracer                   = new XYTracerGuidMoveController();
            tracer.transform         = transform;
            tracer.guid              = moveGuid;
            tracer.moveSpeed         = moveSpeed;
            tracer.ReachPointEvent  += Tracer_ReachPointEvent;
            tracer.FlipingEvent     += Tracer_FlipingEvent;
            tracer.ReachTargetEvent += Tracer_ReachTargetEvent;
            tracer.excludesIndex     = jumpIndexs;

            animStare.loopCount       = 1;
            animStare.OnAnimateEvent += OnAnimateEventDelegate;
            Vector2DUtils.ChangePositionZ(transform, (float)ZIndexs.enemy);
        }
コード例 #7
0
        public void StartMove(float height, float speed, float scale)
        {
            InitSelf();

            pausing     = false;
            this.height = height;
            this.speed  = speed;
            this.scale  = scale;
            if (null != _cor)
            {
                StopCoroutine(_cor);
                _cor = null;
            }
            running = true;
            transform.localScale = new Vector3(scale, scale, 1);
            Vector2[] scope   = Vector2DUtils.GetScreenScope();
            float     xbound  = render.bounds.size.x * .5f;
            float     rightX  = scope [1].x + xbound;
            float     leftX   = scope [0].x - xbound;
            float     startX  = speed < 0?rightX:leftX;
            float     targetX = speed < 0?leftX:rightX;

            Vector2DUtils.ChangePositionX(transform, startX);
            gameObject.SetActive(true);
            _cor = StartCoroutine(DoUpdate(targetX));
        }
コード例 #8
0
        void DrawOutLine()
        {
            if (EditorApplication.isCompiling || EditorApplication.isUpdating)
            {
                return;
            }

            Gizmos.color = color;

            PolygonCollider2D[] polygions = gameObject.GetComponents <PolygonCollider2D>();
            for (int i = 0; null != polygions && i < polygions.Length; i++)
            {
                PolygonCollider2D p2d = polygions [i];
                DrawPolygion(p2d.points);
            }

            EdgeCollider2D[] edpos = gameObject.GetComponents <EdgeCollider2D>();
            for (int i = 0; null != edpos && i < edpos.Length; i++)
            {
                EdgeCollider2D p2d = edpos [i];
                DrawPolygion(p2d.points);
            }

            BoxCollider2D[] boxpos = gameObject.GetComponents <BoxCollider2D>();
            for (int i = 0; null != boxpos && i < boxpos.Length; i++)
            {
                BoxCollider2D p2d = boxpos [i];
                Vector2[]     v2  = Vector2DUtils.GetBoxCollider2DScope(p2d);
                DrawBoxOnWorld(Vector2DUtils.BoxScopeToPoints(v2));
            }
        }
コード例 #9
0
ファイル: UnitTest.cs プロジェクト: imhazige/AeroEgg
        public static void LineLineIntersection()
        {
            Vector3 pInter = Vector3.zero;
            Vector3 p1     = new Vector3(0, 0);
            Vector3 p2     = new Vector3(10, 10);
            Vector3 vx     = new Vector3(p1.x, 10);
            Vector3 vx1    = new Vector3(p1.x, -10);

            DebugUtils.DrawPoint(p1);
            DebugUtils.DrawPoint(p2);
            Debug.DrawLine(p1, p2);
            Debug.DrawLine(vx, vx1);
//			DebugUtils.DrawPoint (vx);
//			DebugUtils.DrawPoint (vx1);
            bool cross = Vector2DUtils.LineLineIntersection(out pInter, p1, p2, vx, vx1);

            if (cross)
            {
                Log.Debug("has {0}", pInter);
                Debug.DrawLine(Vector3.zero, pInter);
            }
            else
            {
                Log.Debug("null.....");
            }
        }
コード例 #10
0
 void Update()
 {
     if (!Vector2DUtils.IsInScreen(transform.position))
     {
         StopAct();
         Log.Debug("go to pooll...");
     }
 }
コード例 #11
0
        IEnumerator DoUpdate(Vector3 center, Vector2 size, AnimationDoneCallBack callback, float animateTime)
        {
            Vector2[] scope = Vector2DUtils.GetScreenScope();
            //to radius
            size = size * 0.5f;
            Vector3 lStart = new Vector3(scope[0].x - lr.bounds.size.x * 0.5f, center.y, center.z);
            Vector3 lEnd   = lStart;

            lEnd.x = center.x - size.x - lr.bounds.size.x * 0.5f;

            Vector3 tStart = new Vector3(center.x, scope[1].y + tr.bounds.size.y * 0.5f, center.z);
            Vector3 tEnd   = tStart;

            tEnd.y = center.y + size.y + tr.bounds.size.y * 0.5f;

            Vector3 rStart = new Vector3(scope[1].x + rr.bounds.size.x * 0.5f, center.y, center.z);
            Vector3 rEnd   = rStart;

            rEnd.x = center.x + size.x + rr.bounds.size.x * 0.5f;

            Vector3 bStart = new Vector3(center.x, scope[0].y - br.bounds.size.y * 0.5f, center.z);
            Vector3 bEnd   = bStart;

            bEnd.y = center.y - size.y - br.bounds.size.y * 0.5f;

            lr.transform.position = lStart;
            tr.transform.position = tStart;
            rr.transform.position = rStart;
            br.transform.position = bStart;

            if (Math.Abs(animateTime) > Mathf.Epsilon)
            {
                float lSpeed   = ((lEnd - lStart) / animateTime).magnitude;
                float tSpeed   = ((tEnd - tStart) / animateTime).magnitude;
                float rSpeed   = ((rEnd - rStart) / animateTime).magnitude;
                float bSpeed   = ((bEnd - bStart) / animateTime).magnitude;
                float timeUsed = 0;
                while (timeUsed < animateTime)
                {
                    if (!pausing)
                    {
                        timeUsed += Time.deltaTime;
                        Vector2DUtils.MoveToSmoothly(lr.transform, lEnd, lSpeed);
                        Vector2DUtils.MoveToSmoothly(tr.transform, tEnd, tSpeed);
                        Vector2DUtils.MoveToSmoothly(rr.transform, rEnd, rSpeed);
                        Vector2DUtils.MoveToSmoothly(br.transform, bEnd, bSpeed);
                    }
                    yield return(null);
                }
            }

            lr.transform.position = lEnd;
            tr.transform.position = tEnd;
            rr.transform.position = rEnd;
            br.transform.position = bEnd;

            callback(center, size);
        }
コード例 #12
0
ファイル: E10.cs プロジェクト: imhazige/AeroEgg
 protected override void DoInit()
 {
     base.DoInit();
     if (null == animWaggle)
     {
         animWaggle = GetComponent <SpriteAnimator> ();
     }
     Vector2DUtils.ChangePositionZ(transform, (float)ZIndexs.enemy);
 }
コード例 #13
0
ファイル: TouchableSlider.cs プロジェクト: imhazige/AeroEgg
        void Awake()
        {
            _collider = GetComponent <BoxCollider2D>();
            _detector = new TouchDetector(_collider);
            _boxScope = Vector2DUtils.GetBoxCollider2DScope(_collider);
            _vertical = Mathf.Abs(_boxScope [1].y - _boxScope [0].y) > Mathf.Abs(_boxScope [1].x - _boxScope [0].x);

            _detector.OnTouchEvent += OnTouchEvent;
        }
コード例 #14
0
        public Vector2 FindClosestPointOnMovingLine(Vector2 target)
        {
            Vector2 p3 = target;
            Vector2 p2 = movePoints[movingIndex];
            Vector2 p1 = movePoints[GetNearByIndex()];

            Vector2 np = Vector2DUtils.ClosestOnLine(p1, p2, p3);

            return(np);
        }
コード例 #15
0
        private void ReverseBuild()
        {
            Vector3 pos    = Vector2.zero;
            Vector3 pos1   = Vector2.zero;
            int     rCount = _renders.Count / (sprites.Count * 2);

            for (int i = 0; i < sprites.Count; i++)
            {
                SpriteRenderer sp = sprites [i];

                SpriteRenderer sr = Instantiate <SpriteRenderer>(sp);
                GameObject     ga = sr.gameObject;
                ga.name = gameObject.name + "-" + rCount + "-" + i;
                ga.transform.SetParent(transform);
                _renders.Add(sr);
                //reverse
                SpriteRenderer sr1 = Instantiate <SpriteRenderer>(sp);
                GameObject     ga1 = sr1.gameObject;
                ga1.name = gameObject.name + "-" + rCount + "-" + i + "_r";
                ga1.transform.SetParent(transform);
                _renders.Add(sr1);
                switch (direction2D)
                {
                case Direction2D.down:
                {
                    pos  = new Vector2(0, -i * _unitSize.y);
                    pos1 = new Vector2(0, -(sprites.Count + sprites.Count - i - 1) * _unitSize.y);
                    //reverse
                    Vector2DUtils.UpsideDown(sr1.transform);
                    break;
                }

                default:
                    break;
                }
                pos   = _startPos + pos;
                pos.z = transform.position.z;
                sr.transform.position = pos;
                pos1   = _startPos + pos1;
                pos1.z = transform.position.z;
                sr1.transform.position = pos1;
            }
            _preCaculateSize = _renders.Count * _unitSize;
            switch (direction2D)
            {
            case Direction2D.down:
            {
                _startPos.y = transform.position.y - _preCaculateSize.y;
                break;
            }

            default:
                break;
            }
        }
コード例 #16
0
        protected override void DoInit()
        {
            base.DoInit();

            _timer             = new SwitchTimer();
            tongueGuid         = GetComponentInChildren <EdgeCollider2D> ();
            tongueGuid.enabled = false;
            Vector2DUtils.ChangePositionZ(transform.parent, (float)ZIndexs.enemy);
            edgeCollider           = gameObject.AddComponent <EdgeCollider2D> ();
            edgeCollider.isTrigger = true;
        }
コード例 #17
0
        void DrawLines()
        {
            if (EditorApplication.isCompiling || EditorApplication.isUpdating)
            {
                return;
            }

            BoxCollider2D[] boxpos = gameObject.GetComponents <BoxCollider2D>();
            for (int i = 0; null != boxpos && i < boxpos.Length; i++)
            {
                BoxCollider2D p2d = boxpos [i];
                Vector2[]     v2  = Vector2DUtils.GetBoxCollider2DScope(p2d);

                //horizontal divide
                if (divideX > 0)
                {
                    float d = (v2 [1].x - v2 [0].x) / divideX;
                    for (int j = 0; j < divideX; j++)
                    {
                        float vx = v2 [0].x + j * d;

                        if (j % 2 != 0)
                        {
                            Gizmos.color = evenColor;
                        }
                        else
                        {
                            Gizmos.color = color;
                        }
                        Gizmos.DrawLine(new Vector2(vx, v2 [0].y), new Vector2(vx, v2 [1].y));
                    }
                }

                //vertical divide
                if (divideY > 0)
                {
                    float d = (v2 [1].y - v2 [0].y) / divideY;
                    for (int j = 0; j < divideY; j++)
                    {
                        float vy = v2 [0].y + j * d;

                        if (j % 2 == 0)
                        {
                            Gizmos.color = evenColor;
                        }
                        else
                        {
                            Gizmos.color = color;
                        }
                        Gizmos.DrawLine(new Vector2(v2 [0].x, vy), new Vector2(v2 [1].x, vy));
                    }
                }
            }
        }
コード例 #18
0
 protected override void DoInit()
 {
     base.DoInit();
     if (null == flyGuid)
     {
         flyGuid = GetComponentInChildren <EdgeCollider2D> ();
     }
     flyGuid.isTrigger = true;
     _cor = StartCoroutine(DoMyUpdate());
     Vector2DUtils.ChangePositionZ(transform, (float)ZIndexs.enemy);
 }
コード例 #19
0
        protected override void DoInit()
        {
            base.DoInit();

            _rigid             = GetComponent <Rigidbody2D> ();
            _rigid.isKinematic = true;
            _collid            = GetComponent <Collider2D> ();
            _collid.isTrigger  = true;
            Vector2DUtils.ChangePositionZ(transform, (float)ZIndexs.o4);
            _shakeEffect = GetComponent <ShakeEffect> ();
//			_shakeEffect.autoStart = false;
        }
コード例 #20
0
ファイル: O3.cs プロジェクト: imhazige/AeroEgg
        protected override void DoInit()
        {
            base.DoInit();

            if (crashSpeed <= 0f)
            {
                crashSpeed = Constants.o3_crash_speed;
            }

            extraLines                = GetComponentsInChildren <EdgeCollider2D> ();
            _circleCollider           = GetComponent <CircleCollider2D> ();
            _circleCollider.isTrigger = true;
            Vector2DUtils.ChangePositionZ(transform, (float)ZIndexs.o3);
        }
コード例 #21
0
        protected override void DoInit()
        {
            base.DoInit();

            if (null == rotateCenter)
            {
                rotateCenter = GameObjectUtils.FindAnyOne(this.gameObject, "rotateCenter").transform;
            }
            if (null == board)
            {
                board = GameObjectUtils.FindAnyOne(this.gameObject, "board").transform;
            }
            Vector2DUtils.ChangePositionZ(transform, (float)ZIndexs.enemy);
        }
コード例 #22
0
        IEnumerator DoMyUpdate()
        {
            while (true)
            {
                if (null == GameController.GetSingleton() || null == GameController.GetSingleton().levelsController || null == GameController.GetSingleton().levelsController.eggController)
                {
                    //for design
                    yield return(null);
                }
                Vector3 pos = GameController.GetSingleton().levelsController.eggController.transform.position;
                float   dis = Mathf.Abs((pos - transform.position).magnitude);
                //Log.Debug ("E1 see egg {0}",dis);
                if (sensibleDistance > dis)
                {
                    Log.Debug("E1 see egg {0}", dis);
                    //start fly
                    animIdle.StopPlay();
                    animFly.StartPlay();
                    GameController.singleton.audioController.PlayBirdFly();
                    break;
                }

                yield return(null);
            }

            while (true)
            {
                if (!Vector2DUtils.IsInScreen(transform.position))
                {
                    Log.Debug("E1 out of screen");
                    gameObject.SetActive(false);

                    yield break;
                }
                if (_flyIndex > flyPoints.Length - 1)
                {
                    gameObject.SetActive(false);
                    break;
                }
                Vector3 fp = flyPoints [_flyIndex];
                Vector2DUtils.MoveToSmoothly(transform, fp, flySpeed);
                if (fp == transform.position)
                {
                    _flyIndex++;
                }

                yield return(null);
            }
        }
コード例 #23
0
ファイル: O2.cs プロジェクト: imhazige/AeroEgg
        protected override void DoInit()
        {
            const int total = 3;

            sprites = new System.Collections.Generic.List <UnityEngine.Sprite> (total);
            for (int i = 0; i < total; i++)
            {
                Sprite sp = Resources.Load <Sprite> (string.Format("Img/O2-{0}", i + 1));

                sprites.Add(sp);
            }

            base.DoInit();
            Vector2DUtils.ChangePositionZ(transform, (float)ZIndexs.o2);
        }
コード例 #24
0
ファイル: EggController.cs プロジェクト: imhazige/AeroEgg
        public void StartRun(Vector3 startPos = default(Vector3))
        {
            InitSelf();
            Reset();
            if (Vector3.zero != startPos)
            {
                Log.Info("start run at position {0}", startPos);
                Vector2DUtils.ChangePositionY(transform, startPos.y);
            }
            else
            {
                transform.position = _startPos;
            }
//			gameObject.SetActive (true);
            _rigid.isKinematic = false;
            running            = true;
        }
コード例 #25
0
        public void Update()
        {
            if (!started)
            {
                return;
            }
            if (_pausing)
            {
                return;
            }
            Vector3 fp = movePoints [movingIndex];
            Vector3 v  = Vector2DUtils.MoveToSmoothly(transform, fp, moveSpeed);
//			Log.Debug ("moving... {0},{1},{2},{3},{4}",movingIndex,fp,v,transform.position,moveSpeed);
            int reachedPoint = -1;

            if ((Vector2)fp == (Vector2)transform.position)
            {
//				Log.Debug ("OnReachPosition {0},{1}",fp , transform.position);
                OnReachPosition(movingIndex, fliping);
                reachedPoint = movingIndex;
                if (!fliping)
                {
                    if (movingIndex == movePoints.Length - 1)
                    {
                        HandleFlip();
                    }
                    else
                    {
                        movingIndex++;
                    }
                }
                else
                {
                    if (movingIndex == 0)
                    {
                        HandleFlip();
                    }
                    else
                    {
                        movingIndex--;
                    }
                }
            }
            PostUpdate(reachedPoint);
        }
コード例 #26
0
ファイル: E9.cs プロジェクト: imhazige/AeroEgg
        IEnumerator DoJump(Vector3 pos)
        {
            while (transform.position != pos)
            {
                if (!pausing)
                {
                    Vector2DUtils.MoveToSmoothly(transform, pos, activeJumpSpeed);
                }

                yield return(null);
            }
            animJump.StopPlay();
            animClimb.StartPlay();
            Transform egg = GameController.GetSingleton().levelsController.eggController.transform;

            tracer.target = egg;
            tracer.Start();
            Log.Debug("E9 start trace...");
        }
コード例 #27
0
ファイル: E10.cs プロジェクト: imhazige/AeroEgg
        IEnumerator DoMyUpdate()
        {
            Vector3 center = Vector3.zero;

            if (Direction2D.right == _direction2D)
            {
                center   = _branch.transform.position;
                center.x = center.x - _branchSpriteSize.x * 0.5f;
            }
            else
            {
                center   = _branch.transform.position;
                center.x = center.x + _branchSpriteSize.x * 0.5f;
            }
            int up = 1;

            while (true)
            {
                if (Vector2DUtils.IsOutsideScreen(transform.position, Direction2D.up))
                {
                    Log.Debug("E10 out of screen");
                    gameObject.SetActive(false);
                    yield break;
                }
                if (!pausing)
                {
                    _branch.transform.RotateAround(center, new Vector3(0, 0, 1), up * speed * Time.deltaTime);
//					Log.Debug ("erule {0}", transform.eulerAngles);
                    float z = transform.eulerAngles.z;
                    if (up == 1 && z > angle && z < 180)
                    {
                        up = -1;
                    }
                    else if (up == -1 && z < 360 - angle && z > 180)
                    {
                        up = 1;
                    }
                }

                yield return(null);
            }
        }
コード例 #28
0
ファイル: UnitTest.cs プロジェクト: imhazige/AeroEgg
        public static void Angle()
        {
            Vector2 v1 = new Vector2(0, 0);
            Vector2 v0 = new Vector2(0, 0);
            float   an = 0;

            v1 = new Vector2(1, 1);
            an = Vector2DUtils.XAngleOfLineSegment(v0, v1);
            Log.Debug("{0} angle is {1}", v1, an);

            v1 = new Vector2(-1, 1);
            an = Vector2DUtils.XAngleOfLineSegment(v0, v1);
            Log.Debug("{0} angle is {1}", v1, an);

            v1 = new Vector2(-1, -1);
            an = Vector2DUtils.XAngleOfLineSegment(v0, v1);
            Log.Debug("{0} angle is {1}", v1, an);

            v1 = new Vector2(1, -1);
            an = Vector2DUtils.XAngleOfLineSegment(v0, v1);
            Log.Debug("{0} angle is {1}", v1, an);
        }
コード例 #29
0
        void DrawOutLine()
        {
            if (EditorApplication.isCompiling || EditorApplication.isUpdating)
            {
                return;
            }

            Vector2[] scope = Vector2DUtils.GetScreenScope();

            Vector3 _p1 = Vector3.zero;
            Vector3 _p2 = Vector3.zero;

            _p1.y = transform.position.y;
            _p1.x = scope[0].x;

            _p2.y = transform.position.y;
            _p2.x = scope[1].x;

            Gizmos.color = color;

            Gizmos.DrawLine(_p1, _p2);
        }
コード例 #30
0
        void Update()
        {
            if (_startedShow && Vector2DUtils.IsOutsideScreen(transform.position, Direction2D.down, null))
            {
                Log.Debug("left screen, destroy.");
                StopAct();
                return;
            }
            if (pausing)
            {
//				Log.Debug (" 01 ...");
                return;
            }
            float tdis = Mathf.Abs(transform.position.y - GameController.GetSingleton().levelsController.eggController.transform.position.y);

            if (!_startedShow && tdis < 0.5f)
            {
//				Log.Debug (" 1 ...");
                //start fall
                Fall();
            }
        }