如何使用标签使相机跟随对象

时间:2017-02-09 05:03:09

标签: c# unity3d camera

我在游戏开始时在场景中生成了一个带有播放器标签的播放器预制件。如何使用播放器标签让相机跟随播放器

目前使用以下脚本

    public Transform target;            // The position that that camera will be following.
    public float smoothing = 5f;        // The speed with which the camera will be following.

    Vector3 offset;                     // The initial offset from the target.


    void Start ()
    {
        // Calculate the initial offset.
        offset = transform.position - target.position;
    }


    void FixedUpdate ()
    {

        // Create a postion the camera is aiming for based on the offset from the target.
        Vector3 targetCamPos = target.position + offset;

        // Smoothly interpolate between the camera's current position and it's target position.
        transform.position = Vector3.Lerp (transform.position, targetCamPos, smoothing * Time.deltaTime);
    }

1 个答案:

答案 0 :(得分:3)

使用this

作为

public Transform target;            // The position that that camera will be following.
public float smoothing = 5f;        // The speed with which the camera will be following.


Vector3 offset;                     // The initial offset from the target.


void Start()
{
    try
    {
        target = GameObject.FindGameObjectWithTag("Player").transform; // this is goint to find a certain tagged object from hirarchey and assing it to target.
    }
    catch (NullReferenceException ex)
    {
        Debug.Log("target gameObjects is not present in hierarchy ");
    }

    // Calculate the initial offset.
    offset = transform.position - target.position;
}


void FixedUpdate()
{

    // Create a postion the camera is aiming for based on the offset from the target.
    Vector3 targetCamPos = target.position + offset;

    // Smoothly interpolate between the camera's current position and it's target position.
    transform.position = Vector3.Lerp(transform.position, targetCamPos, smoothing * Time.deltaTime);
}

或者您可以制作一个活动并在特定时间生成带有标签的gameObejct

作为

public Transform target;            // The position that that camera will be following.
public float smoothing = 5f;        // The speed with which the camera will be following.


Vector3 offset;                     // The initial offset from the target.


void Start()
{
    // Calculate the initial offset.

    offset = transform.position - target.position;
}

// Call this method where you spawing your target and set the tag and call this mehtod supply tag parameter 
public void FindTaggedGameObject(string tag)
{
    try
    {
        target = GameObject.FindGameObjectWithTag("Player").transform; // this is goint to find a certain tagged object from hirarchey and assing it to target.
    }
    catch (NullReferenceException ex)
    {
        Debug.Log("target gameObjects is not present in hierarchy ");
    }
}


void FixedUpdate()
{

    // Create a postion the camera is aiming for based on the offset from the target.
    Vector3 targetCamPos = target.position + offset;

    // Smoothly interpolate between the camera's current position and it's target position.
    transform.position = Vector3.Lerp(transform.position, targetCamPos, smoothing * Time.deltaTime);
}