Unity3D:角色拾取技术

2023-11-16

工程包下载:Unity3D虚拟现实开发之角色拾取

//这个是成品图

角色拾取的原理是:由摄像机与屏幕上鼠标点击的位置确定一条射线,由此射线射向3D世界,最先和此射线相交的物体就是被选中的物体,然后对该物体的操控编写对应的代码即可。具体代码如下:

#鼠标控制
#pragma strict

var flag : boolean=true ;//通过初始化flag赋给物体初始坐标
function Start(){
}
function Update () {
	 if (Input.GetMouseButton (0)) {    

		//声明一条由鼠标位置发出垂直于屏幕的射线
     	var ray = Camera.main.ScreenPointToRay (Input.mousePosition);    
         	var hit : RaycastHit;		
		if (Physics.Raycast (ray, hit)){		//判断此物理事件
            if(hit.transform.root.transform==this.transform) {	
            	flag=!flag;	
    } } } 
    if(flag){
		this.transform.position=Vector3(0,0,2);
	}
	else if(!flag){
		this.transform.position=Vector3(2,0,2);
	}
}

下面是相关的说明:

1.关于Physics.Raycast:

根据Unity圣典的解释:

Returns

bool - True when the ray intersects any collider, otherwise false.

当光线投射与任何碰撞器交叉时为真,否则为假。

Description描述

Casts a ray against all colliders in the scene.

在场景中投下可与所有碰撞器碰撞的一条光线。

因此,这里要求角色必须是或者添加了碰撞器,否则

if (Physics.Raycast (ray, hit)){        //判断此物理事件
            if(hit.transform.root.transform==this.transform) {    
                flag=!flag;    


这个语句不会按照预期执行,flag不会发生改变。

2.调整主摄影机的属性,使视野显示需要操作的角色。



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unity3D:角色拾取技术 的相关文章

  • 1.17 从0开始学习Unity游戏开发--场景切换

    前面的所有文章我们都在一个固定的游戏场景内进行开发 在最开始介绍场景这个概念的时候就已经提及 这个场景可以是一张地图 或者是一个对战房间等等 所以显然这个场景可以有多个 并且可以从一个场景切换到另外一个场景 那么在Unity中如何进行场景切
  • 就现在!为元宇宙和Web3对互联网的改造做准备!

    欢迎来到Hubbleverse 关注我们 关注宇宙新鲜事 预计阅读时长 8分钟 本文仅代表作者个人观点 不代表平台意见 不构成投资建议 如今 互联网是各种不同的网站 应用程序和平台的集合 由于彼此分离 它们缺乏互操作性和数据可移植性 因此
  • Unity中实现倒计时的几种方式

    1 Time time using UnityEngine public class TimeTest MonoBehaviour public float secound 10 void Update Timing private flo
  • Unity之获取游戏物体对象或组件的几个方法

    文章目录 前言 通过物体名称获取对象 GameObject Find Transform Find 通过物体标签获取对象 GameObject FindWithTag GameObject FindGameObjectWithTag Gam
  • unity工程崩溃资源找回

    1 Unity死机未保存场景 当你在Unity中编辑场景 突然死机时 可以在项目文件目录中找到Temp文件夹 双击文件夹 找到 Backupscenes文件夹 把后缀为 backup的文件后缀改为 unity 然后拖进Unity的Proje
  • 【IMGUI】 各种辅助类 EditorGUIUtility、EditorUtility、GUIUtility、GUILayoutUtility

    EditorGUIUtility class in Editor 继承自 GUIUtility EditorGUI 的各种辅助程序 EditorGUIUtility currentViewWidth 我尝试打印了下这个值和position
  • Unity 键盘控制人物移动——之输入方式代码的编写

    键盘输入 控制人物移动 在我们制作游戏中最常见的需求之一就是使用键盘移动游戏角色 那么我们首先需要获取键盘输入 以下提供两种方法获取键盘 这里尽量通过截图解释让大家理解代码的含义 GetInput void FixedUpdate Move
  • Unity打开工程时卡住的问题

    自从Unity升级了一个版本后 Unity打开工程卡住的问题越来越严重了 具体表现为 选择工程后 Unity窗口消失 但进程还在 有时候等个几分钟能出来 有时候等10分钟都不见得能出来 直观感受上看 似乎是Unity加载工程的时候某一步卡了
  • unity3d大型互动照片墙

    1 本次应客户需求 制作一个大型照片墙互动 输出分辨率为9600 4320 注 unity3d官方推荐最大分辨率为8192 3686 4 经过现场长达24小时暴力测试中途未发生问题 姑且判定可以达到正常标准 废话不多说 先上效果 unity
  • VLC for unity 插件如何使用

    VLC for unity 插件如何使用 先去下载一个VLC播放器 安装完成后 然后导入插件链接https download csdn net my 这个插件我的另一个上传资源里有 或者到商店去下载 这个插件链接下载完是一个txt文档 里面
  • 【Unity】按Esc进入操作菜单

    本文章是基于如下视频的自我总结 https www youtube com watch v JivuXdrIHK0 步骤如下 1 在Canvas 界面添加一个Panel Panel中添加一个按钮 调整按钮的大小为合适大小 调整字体的大小为合
  • Unity保存图片到相册

    Unity保存图片到Android相册 Java 纯文本查看 复制代码 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
  • java中Keytool的使用总结

    java中Keytool的使用总结 2011 02 26 15 30 15 分类 在申请Android Map API Key的时候使用到了java中Keytool 下面转一篇介绍java中Keytool的文章 http blog csdn
  • NO.6——Unity3D中两种绘制小地图的方法

    在玩游戏时 你经常会发现 在游戏窗口的右上角或者左下角通常会有一个小地图 里边实时反馈角色的移动信息甚至是世界地图 那么这个小地图是如何绘制的呢 我目前掌握了两种方法 一种是以GUI方法重新绘制一个小窗口 另一种是新建一个正交投影的摄像机机
  • unity dots jobSystem 记录

    Looking for a way to get started writing safe multithreaded code Learn the principles behind our Job System and how it w
  • 【转载】【Unity】WebSocket通信

    1 前言 Unity客户端常用的与服务器通信的方式有socket http webSocket 本文主要实现一个简单的WebSocket通信案例 包含客户端 服务器 实现了两端的通信以及客户端向服务器发送关闭连接请求的功能 实现上没有使用U
  • 【Unity】运行时创建曲线(贝塞尔的运用)

    Unity 运行时创建线 贝塞尔的运用 1 实现的目标 在运行状态下创建一条可以使用贝塞尔方法实时编辑的网格曲线 2 原理介绍 2 1 曲线的创建 unity建立网格曲线可以参考 Unity程序化网格体 的实现方法 主要分为顶点 三角面 U
  • Unity学习笔记

    一 旋转欧拉角 四元数 Vector3 rotate new Vector3 0 30 0 Quaternion quaternion Quaternion identity quaternion Quaternion Euler rota
  • 游戏开发常用实践操作之按动任意键触发

    接下来一些笔记会对于一些大大小小的实践操作进行记录 希望对你有所帮助 在游戏中 我们经常会遇到一些按动任意键触发的操作 接下来展示核心代码 以下是对于Unity中的操作 使用的UI是NGUI 对于核心操作没有影响 你可以自己置换 void
  • 游戏开发中常见系统梳理之背包系统的实现一

    游戏中几乎都存在大大小小的背包系统 接下来我将讲述背包系统具体是如何实现的 完整源码 以下是使用unity NGUI实现 使用txt配置的方法 后续更新UGUI Json实现的背包系统敬请期待 背包中的物品我们常常将其制作成预设体 通过改变

随机推荐

  • 三自由度机械手腕设计机构设计

    1 1工业机器人简介 机器人是一种自动的 位置可控的 具有编程能力的多功能机械手 能够借助于可编程序操作来处理各种材料 零件 工具和专用装置 以执行种种任务 1 工业机器人是一种用于工业生产的机器人系统 通过自动化 可编程的控制下完成工作
  • 数组去重(unique())--numpy

    1 unique函数功能 返回对数组元素去重 并按升序排序的数组 2 函数语法与参数 numpy unique ar return index False return inverse False return counts False a
  • 移动端以及多端适配问题

    移动端 1 移动端的适配方案 1 为适配不同端口不同屏幕下的页面布局采用的不同代码编写思路 1 统一缩放 需要长宽比接近 2 采用rem和vm等相对布局 固定长度的采用px等 3 固定的尺寸加弹性布局 要求的是元素不要固定长度超过范围量 2
  • 【设计模式】23种设计模式之七大原则

    设计模式 23种设计模式之七大原则 什么是设计模式的原则 1 单一职责原则 基本介绍 案例分析 注意事项 2 接口隔离原则 基本介绍 案例分析 代码实现 3 依赖倒转原则 基本介绍 案例分析 依赖传递的三种方式 注意事项 4 里氏替换原则
  • spdlog使用示例

    Copyright c 2015 Gabi Melman Distributed under the MIT License http opensource org licenses MIT spdlog usage example 参考文
  • tensorflow 默认图和自定义图

    graph1 TF Graph with graph1 as default 在这个代码块里使用的是新创建的graph1 d TF constant 10 11 12 13 dtype TF int32 此时默认的graph 就是graph
  • OSI七层模型、TCP/IP四层模型(超详细!!!!!)

    OSI七层模型 七层模型 亦称OSI Open System Interconnection 参考模型是国际标准化组织 ISO 制定的一个用于计算机或通信系统间互联的标准体系 一般称为OSI参考模型或七层模型 它是一个七层的 抽象的模型体
  • cuda,nvidia-driver ,cudnn下载地址及版本对应

    1 cuda CUDA Toolkit 11 5 Downloads NVIDIA Developer 右下角可下载先前版本 2 nvidia driver https www nvidia cn Download index aspx l
  • 主数据管理系统(MDM)调研总结!!!

    文章目录 一 引言 1 1 主数据背景 1 2 主数据定义 1 3 主数据管理 1 3 1 什么是主数据管理系统 1 3 2 主数据管理的两体系一工具 1 3 3 主数据管理的挑战 1 4 主数据与其它数据的关系 1 4 1 主数据与元数据
  • Mybatis知识总结(三):Crud的实现,Mybatis的参数和输出及配置文件

    一 知识复习 1 1 自定义流程再分析 1 2 mybatis 环境搭建步骤 第一步 创建 maven 工程 第二步 导入maven坐标 第三步 编写必要代码 实体类和持久层接口 第四步 编写 SqlMapConfig xml 第五步 编写
  • 【EDA Tools】Spyglass 检查 Verilog 和 SystemVerilog 混合语言及 Lint 检查

    目录 写在前面 读入设计 发现问题并解决 Lint 检查 写在前面 Spyglass可以用于检查混合设计中的语言互操作性和一致性问题 对于设计中包含多种硬件描述语言的情况 Spyglass 能够识别并解析其中的模块及其互连 并对其进行验证
  • 前端要懂的色域知识

    前端也要面对 五彩斑斓的红 这种世纪难题了吗 rgb 255 0 0 真的是红色吗 现在有个 CSS 色值 rgb 255 0 0 请问一下各位 在网页上展示的是什么颜色 各位可能不用思考就马上能够脱口而出 红色 But 各位有没有想过 这
  • 【Redis从入门到进阶】第 2 讲:Jedis 的快速掌握

    本文已收录于专栏 Redis从入门到进阶 专栏前言 本专栏开启 目的在于帮助大家更好的掌握学习Redis 同时也是为了记录我自己学习Redis的过程 将会从基础的数据类型开始记录 直到一些更多的应用 如缓存击穿还有分布式锁等 希望大家有问题
  • Unity接入腾讯广告/腾讯联盟/优量汇SDK操作步骤——源码+图文效果详情

    Unity接入腾讯广告 腾讯联盟 优量汇SDK操作步骤 源码 图文效果详情 前言 一 下载SDK 二 官网注册相关项目信息 1 新建媒体 2 新建广告位 三 更改代码 1 更改初始化SDK的代码 2 更改对应的ID 总结 版权声明 前言 最
  • k8s部署springboot

    前言 首先以SpringBoot应用为例介绍一下k8s的部署步骤 1 从代码仓库下载代码 比如GitLab 2 接着是进行打包 比如使用Maven 3 编写Dockerfile文件 把步骤2产生的包制作成镜像 4 上传步骤3的镜像到远程仓库
  • Ubuntu系统在终端中重启与关机

    如果你想保持当前用户的登录而并且使用root用户执行命令 可以输入 su root 即可 输入蜜码 可以运行 shutdown 命令 重启命令 1 reboot 2 shutdown r now 立刻重启 root用户使用 3 shutdo
  • Oracle 按创建时间排序,如果创建时间为空,将记录放置在最后

    oracle处理方式 在oracle中字段为空值时 被认为为最大 可通过 nulls last 将空值放到最后 语法 select from 表名 order by 排序字段 desc nulls last 实战 select from u
  • win10操作系统瘦身之微信减肥法

    很多人发现 win 10的系统盘空间一直在减少 甚至到跳出空间不足红色警告 但是又不知道哪里出问题 系统盘的容量到底被什么给吃了 所以今天就说说系统瘦身中 很管用的一个方法 减少微信的历史记录法 首先看下微信软件某个目录的空间占用情况 图1
  • 给自己的逆向工程阶段性学习感想总结

    想到哪写哪 逆向工程的学习比起近似的pwn来说 还是没那么吃基础的 不过基础知识和能力的牢固程度还是近乎决定了一个re手的上限 自己在这方面还是欠缺了不少 目前最吃亏的一个方面是代码分析能力 或者说算法能力 或者说正向能力 发现在做中难题的
  • Unity3D:角色拾取技术

    工程包下载 Unity3D虚拟现实开发之角色拾取 这个是成品图 角色拾取的原理是 由摄像机与屏幕上鼠标点击的位置确定一条射线 由此射线射向3D世界 最先和此射线相交的物体就是被选中的物体 然后对该物体的操控编写对应的代码即可 具体代码如下