2016-05-15 62 views
1

我在我的播放器和相机之间创建了一个光线广播,当它检测到一个命中时,将相机移动到对象的前面,以便该对象不会阻挡视图。C#Unity Raycast问题,相机没有响应

调试测试显示raycast肯定正在工作。然而,我从控制台得到的关于我的代码的唯一消息是变量targetMoveUse被赋值,但其值永远不会被使用。

我从youtube上的教程中学习了这段代码,并且将它跟在一个tee上,但尽管看起来和教程有相同的代码,但它并不适合我。本教程仅供参考:https://www.youtube.com/watch?v=0nI0rX5fEY0

这是我的代码。任何帮助表示赞赏。

Transform player; 
Quaternion targetLook; 
Vector3 targetMove; 
public float rayHitMoveInFront = 0.1f; 
Vector3 targetMoveUse; 
public float smoothLook = 0.5f; 
public float smoothMove = 0.5f; 
Vector3 smoothMoveV; 
public float distFromPlayer = 5; 
public float heightFromPlayer = 3; 

void Start() { 
    player = GameObject.FindWithTag ("Player").transform; 
} 

void Update() { 
    targetMove = player.position + (player.rotation * new Vector3 (0, heightFromPlayer, -distFromPlayer)); 

    RaycastHit hit; 
    if (Physics.Raycast (player.position, targetMove - player.position, out hit, Vector3.Distance (player.position, targetMove))) 
     targetMoveUse = Vector3.Lerp (hit.point, player.position, rayHitMoveInFront); 
    else 
     targetMoveUse = targetMove; 

    //chapter 4 episode 3 part 1 
    //transform.position = player.position + (player.rotation * new Vector3 (0, heightFromPlayer, -distFromPlayer)); 


    //transform.position = Vector3.Lerp (transform.position, targetMove, smoothMove * Time.deltaTime); 

    transform.position = Vector3.SmoothDamp (transform.position, targetMove, ref smoothMoveV, smoothMove); 

    targetLook = Quaternion.LookRotation (player.position - transform.position); 
    transform.rotation = Quaternion.Lerp (transform.rotation, targetLook, smoothLook * Time.deltaTime); 
    //chapter 4 episode 1 
    //transform.LookAt (player); 
} 

}

+0

那么,什么是不工作更换targetMove变量?你没有提到那个部分... – Programmer

回答

1

检查这条线,

transform.position = Vector3.SmoothDamp (transform.position, targetMove, ref smoothMoveV, smoothMove); 

与targetMoveUse

transform.position = Vector3.SmoothDamp (transform.position, targetMoveUse, ref smoothMoveV, smoothMove); 
+0

这样做了!谢谢! –

+0

欢迎您,请在此帖上打勾,作为正确答案。 – CloudSL