unity3D拾取物体

unity3D拾取物体

今天虚拟现实课程实验中需要用到使用物理射线来实现拾取物体的操作,借由老师的代码修改并从自己的角度理解和梳理;

没有过于深入的逻辑和方法,大家只要把每一行注释的内容理解了就好,每行注释我都根据老师加入自己的一些理解来表达。其中包含了几个自己对于射线方面的方法理解和学习。
下面展示一些 内联代码片

public class shiqu : MonoBehaviour {
    public float smooth = 3f;//拾取移动的速度参数
    Transform currentObject;//射线实现的需要拾取的物体
    Vector3 mouse3DPosition;//鼠标光标的位置(射线的一个重要参数)
    public GameObject terrian;//为避免拾取中点击地板而造成混乱(这里只有一个地板
    //所以单独设置了物体,如果不想拾取的物体较多建议使用tag标签来识别)
	// Use this for initialization
	// Update is called once per frame
	void Update () {
        if (Input.GetMouseButton(0))
        {
            Ray rays = Camera.main.ScreenPointToRay(Input.mousePosition);//从鼠标光标为起点创建一个射出的射线
            Debug.DrawRay(rays.origin, rays.direction , Color.blue,1);//这个方法我们如果不加最后一个参数的话是没有任何视觉效果的,
            //因为第四个参数(duration)是画出拾取物体和摄像机机位的距离射线的持续时间,如果不加的话默认是0相当于不显示这里稍微解释一下
            RaycastHit hit;//创建变量存储射线反馈信息
            if(Physics.Raycast(rays,out hit))
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值