Unity3D——简单入门知识以及实现鼠标控制物体移动、旋转

2023-11-15

是时候拿出小本本整理一下最近游戏设计课程的东西辣!

简单的背景知识:

Unity3D由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。过去Unity支持三种编程语言:JavaScript、C#和Boo,现在只支持C#。

Unity3D的界面是酱紫的:

场景视图(Scene View),用于设置场景以及放置游戏对象,是构造游戏场景的地方。

游戏视图(Game View),有场景中的相机所渲染的游戏画面,是游戏发布后玩家所能看到的内容。

层级视图(Hierarchy),用于显示当前场景中所有游戏对象的层级关系。在这个视图中,可以通过拖拽的方式在当前项目中添加对象,并设定对象间的父子层级关系。将脚本拖到Hierarchy栏的GameObject上,可以添加脚本。

项目视图(Project),展示整个工程中所有可用资源,例如模型,脚本,材质等,可以添加和删除。

检视视图(Inspector),用于显示当前所选择游戏对象的相关属性与信息,可以调整各种参数

 

Unity脚本可以用多种编译器编写,Windows上可以配置VS,Mac上可以用TextMate。我使用的是Visual Studio。

新建的Unity C#脚本会默认添加两个命名空间:

using UnityEngine;
using System.Collections;

 其他命名空间需自行根据需要添加,例如如果需要一些常用的UI类,(如Text、RawImage等),要引入新的命名空间UnityEngine.UI。

在Unity中,任何要绑定到GameObject上的脚本都必须继承自MonoBehaviour。

所以新建的C#脚本是酱紫的:

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

public class NewScript : MonoBehaviour {

	// Use this for initialization
	void Start () {
		
	}
	
	// Update is called once per frame
	void Update () {
		
	}
}

 更加详细的Unity下载安装和面板的介绍请看->https://blog.csdn.net/liyuerge/article/details/78518972

 

实现:按住鼠标左键——拖动物体 

        按住鼠标右键——旋转物体

        悬停在物体上——变色

首先在场景中添加一个Cylinder:

按住鼠标左键拖动物体:


        if (Input.GetMouseButton(0) && obj != null)    //按住鼠标左键  拖动
        {
            if (Input.GetMouseButton(0))  
            {
                Vector3 targetScreenSpace = objCamera.WorldToScreenPoint(obj.position);  //获取物体原本位置
                Vector3 point = Input.mousePosition;    //获取鼠标位置
                obj.position = objCamera.ScreenToWorldPoint(new Vector3(point.x, point.y, targetScreenSpace.z));    //更新物体位置 至 鼠标位置
            }
        }

按住鼠标右键旋转物体:

 else if (Input.GetMouseButton(1) && obj != null)   //按住鼠标右键 旋转
        {

            obj.Rotate(Vector3.up, -Input.GetAxis("Mouse X") * 10, Space.World);
            obj.Rotate(Vector3.right, Input.GetAxis("Mouse Y") * 10, Space.World);
        }

当鼠标悬停在物体上时 改变物体的颜色

void OnMouseEnter()  //当鼠标在物体上时,改变物体颜色。
    {
      
        GetComponent<Renderer>().material.color = Color.white;
    }

移开鼠标 变回原来的颜色:

void OnMouseExit()   //当鼠标离开物体时 变回原来的颜色
    {
        GetComponent<Renderer>().material.color = oricolor;
    }

 

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

Unity3D——简单入门知识以及实现鼠标控制物体移动、旋转 的相关文章

  • 树实现客户端红点系统

    树实现客户端红点系统 红点系统总览 demo 设计 代码设 引用 https zhuanlan zhihu com p 85978429 红点系统总览 如上图所示 规划红点系统的时候 我们将整个系统分为独立的三个部分 结构层 驱动层和表现层
  • Unity InputSystem 实现同一按键单击、双击、长按执行不同逻辑

    最近学习了一下Unity InputSystem 该系统可用于实现 管理复杂的操作逻辑 上限很高 但由于它有一定的学习成本 导致一些和我一样的小白一入门时不得要领 之前卡住我的一个需求就是通过InputSystem 实现同一按键单击 双击
  • Unity之Animation动画

    Unity之Animation动画 Unity之Animation绘制动画 这篇文章做最简单的动画 让一个立方体从左边移动到右边 1 创建一个Unity的新工程 名为TestAnimation 点击Create And Open按键 打开工
  • Unity3D方向键控制人物移动的代码

    代码 var v Input GetAxis Vertical var h Input GetAxis Horizontal transform Translate transform forward Time deltaTime move
  • unity多个贴图shader

    在一个Material上放多个贴图的测试 比如一个plane上放四个贴图 Shader aaa Properties MainTex Texture 2D white MainTex2 Texture 2D white MainTex3 T
  • Unity Cinemachine插件学习笔记,实现单目标和多目标之间切换

    Cinemachine在2017版中正式加入 结合Timeline可以轻松的制作出一下相机动画 相比Unity自带的标准相机 这个Cinemachine插件可操作的变量更多 不同虚拟相机 用来控制相机的 可以平滑转换等 具体可以参考上篇 U
  • 服务器时间管理器

    时间戳管理器 using System using UnityEngine public class SyncTime Singleton
  • 我的和unity3d的小故事1——恶魔射手之鼠标控制移动之input.getaxis("Horizontal")与input.getaxis("Vertical")

    跟着恶魔射手视频学习的过程中遇到的第一个问题是怎么也移动不了 那么问题来了 打印出来是获得的下面两个值都是0 怎么办呢 改edit下面的projectsetting里面的input属性下面两个值的type都改成mouse movement
  • Unity3D 碰撞器和触发器

    对于碰撞器和触发器经常忘记用法 这次主要记录下以便于能够复习用 1 碰撞器 发生条件 1 碰撞的双方中一定至少要有一个Rigidbody存在 并且碰撞双方必须都要有碰撞体组件 2 碰撞双方若只有一个有刚体 那么那个刚体一定要处于运动的状态下
  • Unity3D【脚本】 按键盘Esc弹出退出面板 确定退出游戏 取消关闭面板

    按键盘Esc弹出退出面板 确定退出游戏 取消关闭面板 效果图 脚本 using UnityEngine using System Collections public class Exit MonoBehaviour public Game
  • unity3d 理解刚体(Rigidbody)和碰撞体(Collider)以及触发器(Is Trigger),边学边更新

    unity3d 理解刚体 Rigidbody 和碰撞体 Collider 以及触发器 Is Trigger 边学边更新 分类 Unity3D 2014 04 01 16 50 2755人阅读 评论 2 收藏 举报 刚体 Rigidbody
  • unity3d 输入法相关API

    Input inputString 获取输入的文字 正在打的中文是接受不到的 只有在文字写到文本框才能获取 Input imeCompositionMode 是否是激活输入框状态 on 是 Input compositionString 空
  • Unity3D Engine Architecture

    原文 http www umingo de doku php id paper mechs and tanks section03 Architecture To better understand the game s software
  • unity中的一些快捷键(齐)

    重命名的快捷键是F2 ALT 鼠标左键点击Hierarchy对象可以展开和收起对象的所有子物体 SHIFT 空格 可以对当前窗口进行放大缩小
  • Unity使用spine动画

    Unity使用spine动画 在 Unity 中 常常使用 Spine 来制作一些动画 引擎本身并不能直接播放 Spine 动画 需要额外导入一个 RunTime 插件库才能支持 官网插件导入 当然 也可以到 Spine 官网关于 Unit
  • Input.GetAxis _ Unity3d

    Input GetAxis 获取轴 static function GetAxis axisName string float Description描述 Returns the value of the virtual axis iden
  • [Unity XLua]热更新XLua入门(一)-基础篇

    Aladdin XLua 前言 前段时间腾讯开源了一个内部热更框架XLua在Unity开发群里引起一阵热议 也受到广大开发者的热捧 然后我当然也抱着好奇的心去学习学习 后面也会将扩展之后的工程放在git上 大家一起学习交流 在此感谢XLua
  • Unity3d 插件 系列——DoTweenPro介绍(图文详细+案例)

    Unity3d 插件 系列 DoTweenPro介绍 图文详细 案例 前言 一 DoTweenPro简介 二 DoTweenPro安装 三 DoTweenPro主要组件 1 DoTweenAnimation 2 DoTweenPath 3
  • Mecanim Any State

    Any State表示任意状态 任意状态是 一个一直存在的特殊状态 他的存在是为了保证你在无意转移至某个你当前正处于的特殊状态而准备的 为你的状态机中的每个状态设置相同的对外转移是一个快捷的方式 假如有Walk Run Fly Die这四个
  • Unity3D的四种坐标系

    1 World Space 世界坐标 我们在场景中添加物体 如 Cube 他们都是以世界坐标显示在场景中的 transform position可以获得该位置坐标 2 Screen Space 屏幕坐标 以像素来定义的 以屏幕的左下角为 0

随机推荐

  • 【C语言】快速排序函数qsort()

    快速排序函数 函数原型 各种数据类型的升序排序函数 1 整型 2 double型 3 字符排序 4 字符串排序 1 根据字符串首字母排序 2 根据字符串长度排序 3 按字典排序字符串 5 结构体 1 一级排序 2 二级排序 具体样例 1 整
  • rust开发工具

    文章目录 介绍 安装Rust 检测 安装vscode 安装Visual C 远程开发 在WSL上远程开发 SSL 远程开发 插件 技巧 idea或clion rust插件 介绍 支持Rust开发最好的开发工具有VS CODE SUBLIME
  • 用matlab画散点图,并指定点与点之间的连线

    用matlab画散点图不难 用scatter函数就行了 主要难在要指定点与点之间连线 关键在于使用gplot函数 语法 gplot A Coordinates gplot A Coordinates LineSpec X Y gplot A
  • GTK3.20安装win10主题和图标

    书接上回win10专业版vs2017编译最新版GTK的两种方法 编译完成后 生成的文件位于C gtk build gtk x64 release 把C gtk build gtk x64 release bin放到环境变量 在vs工程里引用
  • 软件定义网络 (SDN)技术原理详解

    一 SDN相关概念 1 大二层网络 互联网时代 用户的访问称之为南北向流量 而数据中心之间的数据传递成为东西向流量 很多情况下 需要不同的数据中心之间进行数据访问 数据同步 而去同步这些流量要求对这个安全性 以及稳定性有一定的挑战 而让这些
  • vue 纯前端导出 excel

    1 安装2个依赖 npm install file saver xlsx S 加载script 需要 npm install script loader D 2 在 src 目录下新建 vendor文件夹 用于存放 Blob js 和 Ex
  • 浅谈list的remove方法

    List list new ArrayList lt gt list add 11 list add 12 list add 13 list add 14 list add 15 list add 16 for Integer i 0 i
  • MATLAB 学习笔记(4)MATLAB 数组

    目录 MATLAB数组 MATLAB中的特殊阵列 MATLAB 魔方矩阵 MATLAB 多维数组 详细例子 MATLAB数组函数 详细示例 MATLAB数组排序 MATLAB单元阵列 注意 详细例子 MATLAB在单元格上阵列访问数据 MA
  • [Jenkins创建windows子节点]

    正常部署Jenkins有两种方式 一个是直接war或者msi的包在windows系统上搭建 但是windows搭建一般是自己本机进行测试 如果有多台机器同时持续集成的时候 windows并不是一个合适的方式 之前我们已经搭建了一个Rocky
  • 美团笔试题 淘汰分数

    美团笔试题 淘汰分数 某比赛已经进入了淘汰赛阶段 已知共有n名选手参与了此阶段比赛 他们的得分分别是a 1 a 2 a n 小美作为比赛的裁判希望设定一个分数线m 使得所有分数大于m的选手晋级 其他人淘汰 但是为了保护粉丝脆弱的心脏 小美希
  • TCP传输中使用AES加密和gizp压缩

    最近项目需求需要用到TCP传输 为了保证安全传输使用AES 为了使 传输过程中减 数据量小 使用gzip压缩 特此分享一哈 一 AES加密 关于AES的资料网上很多 个人觉得 加密与解密 第三版 很不错 这本书中P155开始讲AES 下载地
  • linux下c 和dlib实现人脸识别,人脸识别(dlib版)-1 dlib 安装及基础使用

    Dlib 是一个 C 工具库 包含机器学习算法 图像处理 网络及一些工具类库 在工业界 学术界都得到广泛使用 接下来的几篇文章中 我将会分享 dlib 库在人脸识别中的应用 这篇文章 将介绍dlib库的安装及基础使用 安装 推荐使用编译源码
  • pycharm如何连接hive数据库

    pip install pyhive from pyhive import hive 查询所有数据库 conn hive Connection host IP地址 username 用户名 database 数据库 auth NOSASL
  • 【华为OD机试真题 JAVA】找到它

    JS版 华为OD机试真题 JS 找到它 标题 找到它 时间限制 1秒 内存限制 65536K 语言限制 不限 找到它是个小游戏 你需要在一个矩阵中找到给定的单词 假设给定单词HELLOWORLD 在矩阵中只要能找到H gt E gt L g
  • 用加持了大模型的 Byzer-Notebook 做数据分析是什么体验

    Byzer Notebook 是专门为 SQL 而研发的一款 Web Notebook 他的第一公民是 SQL 而 Jupyter 则是是以 Python 为第一公民的 随着 Byzer 引擎对大模型能力的支持日渐完善 Byzer Note
  • IDA中的_OWORD

    IDA中的 OWORD 一个有意思的巧合 OWORD的含义 总结 阅读之前注意 本文阅读建议用时 5min 本文阅读结构如下表 项目 下属项目 测试用例数量 一个有意思的巧合 无 0 OWORD的含义 无 1 总结 无 0 一个有意思的巧合
  • ERP系统31.83版本发布,一键极速连接企业供应链!

    近日 ERP系统31 83版本正式发布 无处不在的互联网 正在改变企业与用户的连接方式 一旦享受过什么叫实时 就再也无法忍受延迟 一旦感受过什么叫便捷 就再也无法忍受繁琐 企业如何全方位提高服务效率和用户体验 此次升级的智邦国际ERP系统3
  • Excel表格中函数CEILING的用法

    今天查找Excel表格中CEILING函数的用法 解答的人说的天花乱坠 但是就是描述不清楚 自己去试验了一下 才清楚了 发个博客 CEILING函数是将参数Number向上舍入 沿绝对值增大的方向 为最接近的 significance 的倍
  • 《CTFshow-Web入门》09. Web 81~90

    Web 入门 索引 web81 题解 web82 题解 原理 web83 题解 web84 题解 web85 题解 web86 题解 web87 题解 原理 web88 题解 web89 题解 web90 题解 ctf web入门 索引 w
  • Unity3D——简单入门知识以及实现鼠标控制物体移动、旋转

    是时候拿出小本本整理一下最近游戏设计课程的东西辣 简单的背景知识 Unity3D由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏 建筑可视化 实时三维动画等类型互动内容的多平台的综合型游戏开发工具 是一个全面整