private void OnTriggerEnter(Collider other)
 {
     if (other.tag == "Fox")
     {
         state = chickenState.toDelete;
     }
 }
Пример #2
0
 void OnTriggerExit2D(Collider2D other)
 {
     Debug.Log("triggerd");
     if (other.gameObject.name == "Henhouse")
     {
         Debug.Log("exited");
         state = chickenState.Returning;
     }
 }
Пример #3
0
 void OnTriggerEnter2D(Collider2D other)
 {
     if (state == chickenState.Returning && other.gameObject.name == "Henhouse")
         state = chickenState.inHenhouse;
 }
    // Update is called once per frame
    void Update()
    {
        targetDirection = (target - transform.position);

        if (targetDirection.magnitude > skidDistance)
        {
            targetDirection.Normalize();
            transform.LookAt(target);
        }
        else if (targetDirection.magnitude < skidDistance && targetDirection.magnitude > onTargetTolerance + 0.1)
        {
            transform.LookAt(target);
            state = chickenState.inLocation;
        }
        else if (targetDirection.magnitude < onTargetTolerance)
        {
            transform.LookAt(Camera.main.transform.position);
            state = chickenState.inLocation;
        }

        // over a key
        RaycastHit[] hitObjects;
        hitObjects = Physics.RaycastAll(transform.position + new Vector3(0, 1, 0), Vector3.down);
        if (hitObjects.Length != 0)
        {
            foreach (RaycastHit hit in hitObjects)
            {
                if (hit.collider.gameObject.tag == "Key")
                {
                    if (hit.collider.gameObject.GetComponent <KeyControl>().justPressed == true)
                    {
                        if (onGround)
                        {
                            Jump();
                        }
                        jumping = true;
                    }
                    else
                    {
                        jumping = false;
                    }
                }
                if (hit.collider.tag == "Fox")
                {
                    if (onGround == false)
                    {
                        overFox = true;
                    }
                }
            }
        }

        // on a key
        RaycastHit[] hitObjects2;
        hitObjects2 = Physics.RaycastAll(transform.position + new Vector3(0, 0, 0), Vector3.down, 0.1f);
        if (hitObjects2.Length != 0)
        {
            foreach (RaycastHit hit in hitObjects2)
            {
                if (hit.collider.gameObject.tag == "Key")
                {
                    onGround = true;
                    if (overFox)
                    {
                        overFox = false;
                        // GameManager.Instance.JumpedOverFox();
                    }
                }
            }
        }

        //if (other.tag == "Key")
        //{
        //    if (other.GetComponent<KeyControl>().justPressed == true)
        //    {
        //        Jump();
        //    }
        //}

        //targetDirection = targetDirection.y >= 0 ? targetDirection : new Vector3(targetDirection.x, 0, targetDirection.z);
        transform.rotation = Quaternion.Euler(0, transform.rotation.eulerAngles.y, 0); // fix rotation to only y
    }
 // Start is called before the first frame update
 void Start()
 {
     rb    = GetComponent <Rigidbody>();
     state = chickenState.runningToChord;
 }