Не могу импортировать SmoothFollow.cs в Unity 2018 - PullRequest
0 голосов
/ 02 сентября 2018

Я использую Unity 2018 и пытаюсь импортировать пакет Standard Assets из хранилища Unity.

Есть один файл, который я не могу импортировать. Это называется SmoothFollow.cs. Нет флажка рядом со сценарием. Он находится в папке «Стандартные активы / утилиты».

enter image description here

1 Ответ

0 голосов
/ 03 сентября 2018

Очень странно. Может быть, у вас уже есть сценарий с тем же именем где-то в вашем проекте? Я только что импортировал SmoothFollow.cs на Unity 2018.2.4f1, и он работает просто отлично. Вот код:

using UnityEngine;

namespace UnityStandardAssets.Utility
{
    public class SmoothFollow : MonoBehaviour
    {
        // The target we are following
        [SerializeField]
        private Transform target;
        // The distance in the x-z plane to the target
        [SerializeField]
        private float distance = 10.0f;
        // the height we want the camera to be above the target
        [SerializeField]
        private float height = 5.0f;

        [SerializeField]
        private float rotationDamping;
        [SerializeField]
        private float heightDamping;

        // Use this for initialization
        void Start() { }

        // Update is called once per frame
        void LateUpdate()
        {
            // Early out if we don't have a target
            if (!target)
                return;

            // Calculate the current rotation angles
            var wantedRotationAngle = target.eulerAngles.y;
            var wantedHeight = target.position.y + height;

            var currentRotationAngle = transform.eulerAngles.y;
            var currentHeight = transform.position.y;

            // Damp the rotation around the y-axis
            currentRotationAngle = Mathf.LerpAngle(currentRotationAngle, wantedRotationAngle, rotationDamping * Time.deltaTime);

            // Damp the height
            currentHeight = Mathf.Lerp(currentHeight, wantedHeight, heightDamping * Time.deltaTime);

            // Convert the angle into a rotation
            var currentRotation = Quaternion.Euler(0, currentRotationAngle, 0);

            // Set the position of the camera on the x-z plane to:
            // distance meters behind the target
            transform.position = target.position;
            transform.position -= currentRotation * Vector3.forward * distance;

            // Set the height of the camera
            transform.position = new Vector3(transform.position.x ,currentHeight , transform.position.z);

            // Always look at the target
            transform.LookAt(target);
        }
    }
}

Вы можете просто создать новый скрипт с тем же именем и скопировать и вставить код для того же эффекта.

...