2017-02-09 6 views
-1

Я сделал игрок сборным с тегом плеер, который порождал в сцене, когда игра starts.How я могу сделать камеру следить за игроком с помощью игрока тега.Как сделать камеру последующего объекта с тегом

В настоящее время с помощью следующего сценария

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); 
    } 

ответ

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); 
} 
+0

дал ошибку ** NullReferenceException: Ссылка на объект не указывает на экземпляр объекта CompleteProject.CameraFollow.FixedUpdate() (на активы/_CompletedAssets/скрипты/Camera/CameraFollow.cs: 27) ** –

+0

, который один дал ошибку, какой из них вы попробовали? добавить тег к целевому объекту? когда ваш объект появляется? если он в начале сделать его порожденным в awake –

+0

первый дает ошибку –

 Смежные вопросы

  • Нет связанных вопросов^_^