Пример #1
0
        void Update()
        {
            if (!pawn.enabled)
            {
                return;
            }
            if (hatred is null ||
                hatred.IsDead)
            {
                return;
            }
            if (atkTimer > 0f)
            {
                atkTimer -= Time.deltaTime;
            }
            Vector3 vec = hatred.transform.position - transform.position;

            if (vec.sqrMagnitude < me.SeachRadius * me.SeachRadius) // search target in circle
            {
                pawn.MoveBy(vec.normalized);
                pawn.TargetAt(hatred.transform.position);
                if (atkTimer <= 0f) // has targets in attack range
                {
                    atkTimer = me.AttackCoolDown;
                    claw.Attack(TeamMask.Hero, me.AttackDamage);
                }
            }
        }
Пример #2
0
        void Update()
        {
            if (hero.IsDead)
            {
                return;
            }
            if (Input.GetMouseButtonDown(0))
            {
                claw.PickAndDrop();
            }
            Vector3 mov = new Vector3(
                Input.GetAxis(Const.Horizontal),
                Input.GetAxis(Const.Vertical),
                0f
                );

            pawn.MoveBy(mov);
            Vector3 mousePos = Input.mousePosition;

            mousePos.z = -Camera.main.transform.position.z;
            pawn.TargetAt(Camera.main.ScreenToWorldPoint(mousePos));

            Vector3 firePlaceVec = GameCore.I.fireHeap.transform.position - transform.position;

            firePlaceVec.z = 0f;
            fireHeapPointerArrow.rotation = Quaternion.Euler(0f, 0f, Vector3.SignedAngle(Vector3.up, firePlaceVec, Vector3.forward));

            float fireHeapDist = Vector3.Distance(transform.position, GameCore.I.fireHeap.transform.position);

            if (fireHeapDist > pointerArrowMinShowRange)
            {
                fireHeapPointerArrow.gameObject.SetActive(true);
            }
            else
            {
                fireHeapPointerArrow.gameObject.SetActive(false);
            }
        }