示例#1
0
    private IEnumerator MoveMainCameraToView(Person person)
    {
        Camera.main.transform.parent = person.head.transform;

        while (Camera.main.transform.position != person.head.transform.position)
        {
            Camera.main.transform.position = Vector3.MoveTowards(Camera.main.transform.position, person.head.transform.position, 5f * Time.deltaTime);

            Vector3 relativePos = person.head.transform.position - Camera.main.transform.position;
            Quaternion rotation = Quaternion.LookRotation(relativePos);
            Camera.main.transform.rotation = Quaternion.Lerp(Camera.main.transform.rotation, rotation, Time.deltaTime);

            yield return null;
        }

        while (Camera.main.transform.rotation != person.transform.rotation)
        {
            Camera.main.transform.rotation = Quaternion.RotateTowards(Camera.main.transform.rotation, person.transform.rotation, 50f * Time.deltaTime);

            yield return null;
        }

        person.controller.enabled = true;
        person.StopAllCoroutines();
        person.GetComponent<Rigidbody>().useGravity = true;

        StartCoroutine(RemoveUnseenPeople(person));
    }