예제 #1
0
	// Use this for initialization
	void Start () {

        anim = GetComponentInChildren<Animator>();
        
		state = flyingState.LANDED;
        
		startPos = this.gameObject.transform.position;
		playerPos = GameObject.FindGameObjectWithTag("Player").transform;
	}
예제 #2
0
	// Update is called once per frame
	void Update () {
		dist = Vector3.Distance (this.gameObject.transform.position, playerPos.position);
		if (dist < distMin && state == flyingState.LANDED)
        {
            anim.SetBool("fly", true);
            state = flyingState.FLYING;
			endPos.x = Random.Range(-maxFar, maxFar);
			endPos.y = 0.5f;
			endPos.z = Random.Range(-maxFar, maxFar);

			middPos.x = startPos.x + endPos.x;
			float rndRange = highMax/10;
			middPos.y = highMax + Random.Range(-rndRange, rndRange);
			middPos.z = startPos.z + endPos.z;

			middPos2 = middPos;
			middPos2.x = middPos.x + endPos.x;
			middPos2.z = middPos.z + endPos.z;
		}
		if (state == flyingState.FLYING)
        {
            transform.LookAt(middPos);
            transform.position = Vector3.MoveTowards(transform.position, middPos, 0.2f);
			if (transform.position == middPos)
			{
				state = flyingState.MIDDLE;
                anim.SetBool("fly", true);
            }
		}
		if (state == flyingState.MIDDLE)
        {
            transform.LookAt(middPos2);
            transform.position = Vector3.MoveTowards(transform.position, middPos2, 0.2f);
			if (transform.position == middPos2)
			{
				state = flyingState.MIDDLE2;
                anim.SetBool("fly", true);
            }
		}
		if (state == flyingState.MIDDLE2)
        {
            transform.LookAt(endPos);
            transform.position = Vector3.MoveTowards(transform.position, endPos, 0.1f);
			if (transform.position == endPos)
			{
				state = flyingState.LANDED;
                anim.SetBool("fly", false);
            }
		}
	}