我是靠谱客的博主 糊涂月饼,这篇文章主要介绍unity raycasthit讲解,现在分享给大家,希望可以做个参考。

新建一个场景加三个方块,如图在这里插入图片描述
在随便一个物体上加上脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour
{
    public Transform cube1, cube2;

    // Start is called before the first frame update
    void Start()
    {
        Debug.Log(LayerMask.GetMask("Shootable"));
    }

    // Update is called once per frame
    void Update()
    {
        Ray ray =  Camera.main.ScreenPointToRay(Input.mousePosition);
       // Ray ray = new Ray(Camera.main.transform.position, Input.mousePosition);
        RaycastHit hit;
        if( Physics.Raycast( ray , out hit ,100,LayerMask.GetMask("Shootable") ))
        {
            hit.transform.position   += new Vector3(1, 0, 0);  
        }
          
        
    }
}

大致意思是如果点击到某个方块,该方块就像右移动一个单位
其中ray是从相机发出的一条射线,终点位置为鼠标的位置,如果该射线碰撞到摸个物体,raycast就返回true,
其中,要定义一个raycasthit的变量,传入参数前的out类似c++的引用
100是指距离 在后面是物体的layer层属性

方块的layer设置为shootable,plan的layer层设置为floor(没有就add layer)
方块记得加上collider碰撞体
然后可以点击运行了,只要鼠标碰到方块,方块就会动
在这里插入图片描述

最后

以上就是糊涂月饼最近收集整理的关于unity raycasthit讲解的全部内容,更多相关unity内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(136)

评论列表共有 0 条评论

立即
投稿
返回
顶部