2016-09-24 4 views
0

줄을 그립니다. LMB를 누르면 마우스 위치쪽으로 플레이어가 회전하고 있는데, 나는 또한 시뮬레이션을하고 싶습니다. 그래서 LMB를 클릭하면 플레이어 위치에서 마우스 위치까지 선을 만들고 싶습니다. 내 큰 문제는 내 선수가 움직이고있어 내가 광선의 시작 위치를 얻는 방법을 알아낼 수 없다는 것입니다.플레이어에서 마우스 위치 (Unity)

이제 광선은 vector3 (0,0,0)에서 마우스 위치로 렌더링됩니다. 이는 내가 원하지 않는 것입니다. PLAYER 위치에서 마우스 위치로 렌더링하려고합니다. 여기

내 코드입니다 : 내가 생각

void Update() { 

transform.Translate (Vector3.down * Time.deltaTime * movementSpeed, Space.World); 

if (Input.GetButtonDown("Fire1")) { 

    Vector3 mousePos = new Vector3 (Input.mousePosition.x, Input.mousePosition.y, 10); 
    Vector3 lookPos = Camera.main.ScreenToWorldPoint (mousePos); 
    lookPos = lookPos - transform.position; 
    float angle = Mathf.Atan2 (lookPos.y, lookPos.x) * Mathf.Rad2Deg + 90; 
    transform.rotation = Quaternion.AngleAxis (angle, Vector3.forward); 

    if (Time.time > nextFire) 
    { 
     nextFire = Time.time + fireRate; 
     StartCoroutine (shotEffect()); 
     laserLine.SetPosition (1,this.transform.position+lookPos);    
    } 
} 

} 코드는 플레이어와 laserLine.SetPosition (에 연결되어있는 경우

답변

2

)를 시작하고 라인 끝 설정하는 것을 :

laserLine.SetPosition (1,this.transform.position+lookPos); 

는 다음과 같아야합니다.

laserLine.SetPosition (this.transform.position,this.transform.position+lookPos);