我是靠谱客的博主 糊涂月饼,最近开发中收集的这篇文章主要介绍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 raycasthit讲解所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部