不确定是否可以将Ray用于统一游戏对象,鼠标点击是否可行,但如果游戏对象无法复制结果?
需要以下代码以相同的方式工作,让光线进入玩家位置,而不是鼠标点击。
// Get the place the player has clicked
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
// Holds information regarding the mouseclick
RaycastHit hitInfo;
// Now work out if we fire or not
if (Physics.Raycast(ray, out hitInfo))
{
if(hitInfo.distance < maxRange)
{
FireAtPoint(hitInfo.point);
尽管它没有给出正确的位置并且在播放器静止时提供了不同的位置,但我们尝试过以下操作。
// Holds information regarding the mouseclick
RaycastHit hitInfo;
// Now work out if we fire or not
if (Physics.Raycast(player.transform.position,transform.forward, out hitInfo))
{
答案 0 :(得分:0)
player.transform.position
会从玩家的位置触发,但是transform.forward
对于你的脚本与其原点旋转相关的任何内容都将是“前进”。
如果它没有朝着你想要的方向开火,那么你可能意味着写下player.transform.forward
或“前进”,无论你的剧本附属于什么,都不是你认为的前锋。
答案 1 :(得分:0)
问题来自我所解雇的位置(原点),
// Holds information
RaycastHit hitInfo;
// Now work out if we fire or not
if (Physics.Raycast(transform.position,transform.forward, out hitInfo))
{