【unity】小白向---简单的物品拾取到手上

这篇具有很好参考价值的文章主要介绍了【unity】小白向---简单的物品拾取到手上。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

    前情提要,本人一个unity初学者,对于如何将物品拾取到手上这一个问题研究了近三天,都仍未明白如何实现。网络上出现的要么是将物品删除,要么就是对物品进行鼠标拾取拖动。

    先来看看实现效果

    对准所要拾取的物品(注意必须是刚体rigidbody组件,且加了colider组件,且要有sphere碰撞域),当摄像机/人物进到碰撞域里面后,可以按下特定的键触发拾取。

【unity】小白向---简单的物品拾取到手上

拾取对象为图中的绷带

【unity】小白向---简单的物品拾取到手上 

显示碰撞域

【unity】小白向---简单的物品拾取到手上 

检查器页面(要拾取的必须加上sphere box 和rigidbody!)

   创建物体后,在主相机 main-camara或者说你的人物下建立一个空对象,将空对象移动到你觉得合适的位置(此为“手”,或者物体所要转移的位置)

如图:

【unity】小白向---简单的物品拾取到手上

建立空对象GameObject后, 创建C#脚本

我这里命名为tack脚本

代码如下

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

public class tack : MonoBehaviour
{

    private bool canCollect = false;
    //判断是否进入碰撞域
    private GameObject target;
    //对象target
    [SerializeField] Transform ItemSlot;
    //“手”
    void Update()
    {
        //一旦检测到按下f且符合能拾取条件,就拾取
        if (Input.GetKeyDown(KeyCode.F))
        {
            if (canCollect)
            {
                target.transform.SetParent(ItemSlot);             //设立父对象
                target.transform.localEulerAngles = Vector3.zero; //设置相对于父对象的角度为0
                target.transform.localPosition = Vector3.zero;    //设置相对于父对象的位置为0
            }
        }
    }

    private void OnTriggerEnter(Collider other)    //碰撞域进入判断
    {
        // 判断名称,设置可拾取状态,并将目前碰撞到的对象引用给予target
        if (other.gameObject.tag == "item")
        {
            canCollect = true;
            target = other.gameObject;
        }
    }

    private void OnTriggerExit(Collider other)    //碰撞域退出判断
    {
        // 退出碰撞箱范围,禁用拾取,解除target的引用
        if (other.gameObject.tag == "Item")
        {
            canCollect = false;
            target = null;
        }
    }
}

结束脚本的代码编写后,将其挂载到主相机或者人物上面。

【unity】小白向---简单的物品拾取到手上

再将之前创建的空对象GameObject挂载到这个Item Slot上

【unity】小白向---简单的物品拾取到手上 

而后运行代码

【unity】小白向---简单的物品拾取到手上 

 完成

-----===================================================================-----

  第一次写博,且自学unity时间并不是很长,所以有些专业名字讲述可能不是很到位,欢迎各位批评指正,交流学习!!!文章来源地址https://www.toymoban.com/news/detail-487713.html

到了这里,关于【unity】小白向---简单的物品拾取到手上的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 虚幻4学习笔记(10)蓝图接口、拾取物品-射线检测

    B站UP谌嘉诚课程:https://www.bilibili.com/video/BV164411Y732 添加:内容浏览器 右键 蓝图 蓝图接口 新建Doorinterface 蓝图接口 添加canOpendoor 和test函数 test函数添加输入输出参数 组件添加蓝图接口后可以调用其函数 只有入参没有出参 可以当做事件调用 有出参可以当函数调用使用 使用

    2024年02月08日
    浏览(70)
  • Unity SteamVR 2.x UGUI射线交互 +物品射线点击+物品抓起(超级简单)

    刚开始先查看了其他道友的方案:1.Unity使用SteamVR2.0实现基本功能(瞬移,抓取物品,射线点击,UI交互等)_贪小心的博客-CSDN博客_unity steam vr 2.【Steam VR 2.0】5.射线操作UGUI-射线点击物体_恩博同学的博客-CSDN博客_htc steamvr 射线点击ui 嗯。。。试着尝试了一下,不是很好用,于是乎记

    2023年04月25日
    浏览(34)
  • Unity XR Interaction Toolkit(三)拾取物体

    首先配置一个可拾取的物体,右键-XR-Grab Interactable,就会创建一个0.1尺寸的小立方体 XRGrabInteractable: Distance Calculation Mode:根据模式选择坐标点,可以选择Transform的坐标或者碰撞器的坐标 Select Mode:抓取方式,分为单手和双手,在变换脚本挂载时,会根据这个脚本激活 Movem

    2024年02月08日
    浏览(34)
  • unity实现鼠标拖拽物品移动

    unity实现物品拖拽,3D创景需要注意的是一个屏幕坐标转换为世界坐标和世界坐标转换屏幕坐标,熟悉他们之间的转化,就没什么难度了 从摄像机发射一条射线,通过射线检测到鼠标点击的物体,将物品的世界坐标转换为屏幕坐标 将鼠标的位置为,鼠标点击的XY轴和物品的

    2024年02月11日
    浏览(50)
  • Unity项目Ruby 解决物品之间的排序问题

            你先前通过调整瓦片的 Order in Layer 属性来解决了瓦片地图的排序问题,但此方法在这里不合适,因为你并非总是希望一个游戏对象在另一个游戏对象之上。你需要“伪造”透视图。根据直觉,玩家希望角色在立方体前面时首先绘制角色,而角色在立方体后面时最

    2023年04月09日
    浏览(21)
  • 燕山大学机器学习复习提要

    自己总结内容,仅供参考 2022-8-15更新 上学期期末考试的题型有 填空 20分 简答 60分 两道大题 20分 以下是回忆的题型 时间太久了,只能回忆大概有什么,细节忘了 填空题时间太久了忘了有什么了 简答涉及的知识点大概有: 数据清洗 SVM 准确率 精确率 召回率 PR曲线 K-means B

    2024年02月11日
    浏览(34)
  • 【实现100个unity特效】shader实现3D物品闪光和描边效果

    线状映射图片 配置,按该shader新增材质 Outline Width控制描边 Line Speed控制闪光速度 当然,还可以修改对应的颜色 效果演示 赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的 点赞评论和关注 ,以便我第一时间收到反馈,你的每一次 支持 都是我不断创作的最

    2024年01月25日
    浏览(42)
  • 【Unity2D】实现打怪掉落物品(如爆金币等)的功能

    本文章记录实现打怪掉落物品的功能,以下代码为2D实现,3D模式稍加修改即可。 目录 一、代码部分 二、注意事项 三、效果展示 创建一个C#脚本命名为Item,并将该脚本挂载到需要掉落的物品上。 1.需要禁用掉落物品与自身和其他人物之间的碰撞(否则可能被物品撞飞)。

    2024年02月11日
    浏览(29)
  • Unity使用SteamVR2.0实现基本功能(瞬移,抓取物品,射线点击,UI交互等)

     把SteamVR的Player预制件拖到一个空场景,删掉场景内原本的相机 新建一个Plane,当做地板 找到SteamVR的人物瞬移控制器  Teleporting ,把它拖到场景里  我们需要在可以移动的区域,也就是碰撞器上,挂 TeleportArea 脚本 这个脚本会自动修改你的材质球 locked 该区域是否可以移动 markerAc

    2024年02月02日
    浏览(36)
  • Unity VR 开发教程 OpenXR+XR Interaction Toolkit (六)手与物品交互(触摸、抓取)

    往期回顾: Unity VR 开发教程 OpenXR+XR Interaction Toolkit (一) 安装和配置 Unity VR 开发教程 OpenXR+XR Interaction Toolkit (二) 手部动画 Unity VR 开发教程 OpenXR+XR Interaction Toolkit (三) 转向和移动 Unity VR 开发教程 OpenXR+XR Interaction Toolkit (四) 传送 Unity VR 开发教程 OpenXR+XR Interaction Toolkit (五) UI

    2024年02月11日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包