Пример #1
0
 private void OnTriggerEnter(Collider other)
 {
     // print(other.gameObject.name);
     if (other.name == "Player")
     {
         state = AngleState.Chase;
     }
 }
Пример #2
0
    void Attack()
    {
        GameObject temp = PhotonNetwork.Instantiate(circle.name, this.transform.position, circle.transform.rotation, 0);

        state = AngleState.Attack;
        AngleAni.SetInteger("State", 3);
        StartCoroutine(DelayAttack(0.01f));
    }
Пример #3
0
    public void SpotLightChange(AngleState state)
    {
        if (state == AngleState.None)
        {
            return;
        }

        angleState = state;

        isChange = true;
    }
Пример #4
0
    IEnumerator DelayAttack(float t)
    {
        yield return(new WaitForSeconds(t));

        if (t == 0.5f)
        {
            GameObject player        = GameObject.Find("Player");
            GameObject b             = PhotonNetwork.Instantiate(ball.name, this.transform.position + new Vector3(1f, 1.2f, 0.0f), ball.transform.rotation, 0);
            Vector2    emissionPoint = new Vector2(this.transform.position.x + 1.0f, this.transform.position.y + 1.2f);
            b.GetComponent <Rigidbody>().AddForce(70.0f * new Vector3(player.transform.position.x - emissionPoint.x, player.transform.position.y - emissionPoint.y, 0.0f));
        }
        state = AngleState.Chase;
    }
Пример #5
0
 // Use this for initialization
 void Start()
 {
     AngleAni = this.GetComponent <Animator>();
     sprd     = this.GetComponent <SpriteRenderer>();
     rigid    = this.GetComponent <Rigidbody> ();
     state    = AngleState.Idle;
     changeDirectionTimeInterval = Random.Range(5.0f, 10.0f);
     changeUpDownInterval        = Random.Range(4.0f, 8.0f);
     wanderTimeInterval          = Random.Range(3.0f, 5.0f);
     attackTimeInterval          = Random.Range(4.0f, 6.0f);
     catchTime = Time.time;
     getTime   = catchTime;
     grabTime  = getTime;
     pickTime  = grabTime;
 }
Пример #6
0
    void Fly(bool wander)
    {
        if (wander)
        {
            state = AngleState.Wander;
        }
        else
        {
            state = AngleState.Chase;
        }

        if (upDown)
        {
            this.transform.position += new Vector3(0.0f, 0.5f * -flySpeed, 0.0f);
        }
        else
        {
            this.transform.position += new Vector3(0.0f, 0.5f * flySpeed, 0.0f);
        }
    }
Пример #7
0
    private void Move(bool wander)
    {
        if (wander)
        {
            state = AngleState.Wander;
            AngleAni.SetInteger("State", 1);

            if (direction)
            {
                this.transform.position += new Vector3(0.5f * -moveSpeed, 0, 0.0f);
            }
            else
            {
                this.transform.position += new Vector3(0.5f * moveSpeed, 0, 0.0f);
            }
        }
        else
        {
            state = AngleState.Chase;
            AngleAni.SetInteger("State", 1);
        }
    }
Пример #8
0
        public AbstractState makeState(string stateName, string p1, string p2, string p3, float precision, float grados, string stateType, int posState1, int posState2)
        {
            AbstractState aS;
            AbstractState aS1 = getState(posState1);
            AbstractState aS2 = getState(posState2);

            switch (stateType)
            {
            case "AND": aS = new AndState(aS1, aS2, stateName); break;

            case "ANGLE": aS = new AngleState(p1, p3, p2, grados, precision, stateName); break;

            case "CENTER_X": aS = new CenterStateX(p1, p2, precision, stateName); break;

            case "CENTER_Y": aS = new CenterStateY(p1, p2, precision, stateName); break;

            case "CENTER_Z": aS = new CenterStateZ(p1, p2, precision, stateName); break;

            case "DISTANCE": aS = new DistanceState(p1, p2, precision, stateName); break;

            case "LEFT": aS = new LeftState(p1, p2, precision, stateName); break;

            case "OR": aS = new OrState(aS1, aS2, stateName); break;

            case "OVER": aS = new OverState(p1, p2, precision, stateName); break;

            case "POSITION": aS = new PositionState(p1, precision, stateName); break;

            case "RIGHT": aS = new RightState(p1, p2, precision, stateName); break;

            case "UNDER": aS = new UnderState(p1, p2, precision, stateName); break;

            default: aS = new InvalidState(stateName); break;
            }
            return(aS);
        }
Пример #9
0
 void Hit()
 {
     state = AngleState.Hit;
     AngleAni.SetInteger("State", 4);
     StartCoroutine(DelayAttack(0.5f));
 }