雷为游戏对象统一

时间:2018-02-15 00:39:06

标签: c# unity3d game-physics raycasting

不确定是否可以将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))
        {

2 个答案:

答案 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))
    {