Unity3D
文章平均质量分 83
雁回晴空
莫听穿林打叶声,何妨吟啸且徐行。竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生。
展开
-
解决Unity3D中多层级结构子物体旋转受父物体尺寸影响的问题
前言 在使用unity3D进行场景设计和物体控制的过程中,多层物体嵌套是经常会用到的一个结构。多层级物体中,每个层次的物体可能都会有子物体,这就导致了子物体的一些行为会收到父物体参数的影响。本文讨论子物体旋转操作偶然会出现的mesh变形的问题。问题描述图1 正常操作展示 图1(A)所示,我们设置了一个父物体(parent_cube)和一个子物体(child_cube),采用默认cube的Scale参数都是(1,1,1),父子物体要相距一定距离便于观察表现。此时的...原创 2021-10-24 18:08:23 · 16017 阅读 · 2 评论 -
Unity3D中使用C#调用C++编写的DLL
Unity3D是一款非常优秀的游戏引擎,可以使用C#作为脚本语言进行编程。但是有的时候我们需要运行一些第三方的程序,例如C++实现的一些算法。我们需要将C++的代码以DLL的形式嵌入到Unity3D的程序中。这时候就要用到C#调用C++ DLL的方法。本文给出一个最简单的调用方式,实现了一些简单数据类型的传递。原创 2017-01-20 20:16:59 · 7778 阅读 · 2 评论 -
Ubuntu环境下使用Unity3D调用C++编写的Linux so动态链接库
Unity3D已经有了支持Linux的社区版本。要在Linux环境下开发Unity3D程序,首先要安装Linux版的Unity。地址如下:https://forum.unity3d.com/threads/unity-on-linux-release-notes-and-known-issues.350256/#post-25563011 制作Linux下的动态链接库Linux下的原创 2017-03-05 10:10:51 · 7188 阅读 · 7 评论 -
【Unity Shader学习笔记】(一)在表面着色器中控制顶点变换
通常境况下,我们可以方便地使用表面着色器对材质进行简单的金属光泽、平滑度等设置。但是如果要想对顶点进行控制,就需要使用顶点片段着色器。然而,在顶点片段着色器中,连最基本的漫反射、高光等都需要手动去写,显然比较麻烦。因此,如果能在表面着色器中进行顶点的控制就好了。当然,这是可以做到的!首先,在Unity中生成一个基本的表面着色器,在Project选项卡中,Create——Shader——St原创 2016-12-18 09:40:25 · 5517 阅读 · 0 评论 -
【Unity Shader学习笔记】(二)最基本的顶点片段着色器
分享一个基本的顶点片段着色器,可以实现纹理采样。目前没有加入光照和阴影效果。这个Shader可以作为基本的模板,进行更加细节的修改与开发。这里就简单分享一下吧。Shader "Unlit/unlit"{ Properties { //定义基本属性,可以从编辑器里面进行设置的变量 _MainTex ("Texture", 2D) = "white" {} } SubShad原创 2016-12-19 11:29:21 · 2463 阅读 · 0 评论 -
【Unity Shader学习笔记】(五)使用鼠标绘制自由多边形(附完整工程源码)
前言在前面的文章中,我们已经了解了怎样使用Unity Shader来绘制简单的点和线,本文将延续上次的话题,讲述一下如何在场景中使用Unity Shader绘制自由多边形。本文所述的程序,支持在地图中用鼠标点击,确定多边形顶点,并且绘制多边形的边,在内部填充半透明的颜色。先展示一下最终效果。1 开发工具介绍Windows 10(64位)Unity 5.4.1(64位原创 2017-01-03 10:37:46 · 10942 阅读 · 5 评论 -
【Unity Shader学习笔记】(三)绘制点、直线、网格等基本图形
今天我们学习一种简单的使用Unity Shader在屏幕上绘制几何图形的方法。其中包含了基本的点(或者说是圆形)、直线(任意方向)和网格(横纵交错)的绘制方法。本文例程使用的是Unity5.4.1。原创 2016-12-22 14:52:50 · 18837 阅读 · 5 评论 -
【Unity Shader学习笔记】(四)绘制Julia奇幻图形
前言数学之美,人人皆知。今天我们就来看看数学是怎样影响图形绘制效果的吧。我们采用Julia集作为绘制对象。展示一下数学框架下的优美图形。 1 基本理论Julia集是在复平面上形成分形的点的集合。简单来说,我们可以通过一个等式的迭代来确定复平面上的哪些点属于Julia集合。常数c是我们预定义的复数常量,z是复平面上的一个点。如果经过一定次数的迭代计算,z的模仍然在一定范围内,原创 2016-12-23 14:30:14 · 4863 阅读 · 7 评论 -
使用Unity3D生成网格并加贴图
在使用Unity3D进行开发时,我们通常需要生成自己的网格来进行控制,比如进行图像变形等等。本文将介绍如何在Unity3D中生成一个网格。 首先,需要在空间中生成顶点,然后在定义三角面片顶点序号。生成网格的代码如下:using UnityEngine;using System.Collections;public class MeshGeneration : MonoB原创 2016-11-18 20:07:27 · 7846 阅读 · 5 评论 -
利用RealSense检测到的手指关节信息自定义简单动态手势
英特尔的RealSense深度摄像头可以检测到手的骨骼信息,给出各个关节的相对位置。这里我自己定义了一些简单的动态手势,例如上下左右移动和左右旋转等等。如果有需要,程序可以继续进行扩展,加入更多的手势。注意,本实验采用的型号是RealSense F200。其他型号如果也可以使用Intel RealSense SDK中的基于Unity3D的关于hand skeleton的example,程序理论上也...原创 2017-09-14 01:08:29 · 5674 阅读 · 25 评论 -
【Unity3D入门教程】Unity3D开发实战之五子棋
经过前面《Unity3D入门教程》系列讲解,再加上我们自己的探索,相信大家已经掌握了Unity3D的相关知识和基本方法。本文将使用前面学到的知识,开发一款简单的五子棋程序。本文用到的东西其实不多,非常简单。在最后我们会把完整工程的源代码发布出来,以供初学者参考。原创 2017-01-11 17:07:42 · 24842 阅读 · 14 评论 -
【Unity3D入门教程】Unity3D简介、安装和程序发布
Unity3D是一个跨平台的游戏开发引擎,它能够帮助开发者快速构建游戏场景,进行游戏开发与发布。它支持将开发好的作品发布到Windows、Mac OS、Android、iOS、Linux等多种平台。另外,Unity3D官方版本目前可以运行在Windows和Mac OS上,当然还有可以运行在Linux上的非官方版本。原创 2017-01-06 11:22:19 · 52695 阅读 · 12 评论 -
【Unity3D入门教程】网络通信
Unity之前都是使用RPC来进行网络通信的,后来在Unity5中有了UNET,使得开发多人在线网络游戏变得非常简单。本文将会介绍使用新网络模块UNET开发游戏的简单方法。原创 2017-01-10 18:32:54 · 12495 阅读 · 1 评论 -
Unity3D中将物体模型放置到另一物体模型表面的简单办法
本文讲述的是将一个物体模型放置到另一个物体表面的方法。使用的工具是Unity3D,实现效果是使用鼠标指定物体表面的某一个点,目标物体就会放置到所指定位置上。 实现思路:通过鼠标发射射线,与一个物体碰撞,检测碰撞点的法线,确定目标物体的放置方向。 代码如下:using UnityEngine;using System.Collections;public cla原创 2016-11-18 16:55:54 · 17476 阅读 · 3 评论 -
使用Unity3D的网格功能生成自己的球体网格模型
前面已经讲过怎样使用mesh生成一个自己的网格,那么本文将会讲述怎样将这个网格变换成自己想要的形状,比如一个球体。核心代码如下: v.x = r * Mathf.Cos(vertices[i].x / width * 2 * Mathf.原创 2016-11-21 10:30:19 · 6273 阅读 · 0 评论 -
【Unity3D入门教程】Unity3D界面介绍及游戏对象基本操作
本文介绍了Unity3D界面及游戏对象基本操作。原创 2017-01-06 17:16:10 · 40650 阅读 · 0 评论 -
【Unity3D入门教程】使用C#脚本控制游戏对象
使用C#脚本控制游戏对象,是一项必备的基本技能。Unity3D可以使用的脚本有C#和javascript等。我们主要讲注意力集中在C#上。本文将会介绍怎样使用脚本控制场景中的游戏对象。原创 2017-01-07 16:47:47 · 42921 阅读 · 10 评论 -
【Unity3D入门教程】Unity3D之GUI浅析
一款典型的软件都会有交互界面,这些界面包括标签、按钮、拖动条等。Unity3D内置一些基本的GUI命令,可以在屏幕上绘制简单的交互控件。本文主要介绍传统的GUI。而最新加入的UGUI模块将在下一讲中介绍。原创 2017-01-07 20:30:11 · 14099 阅读 · 7 评论 -
【Unity3D入门教程】游戏开发利器UGUI的基本使用方法
UGUI是Unity官方推出的新一代交互系统,与传统的GUI相比,它具有使用灵活、界面美观、支持个性化定制的特点。本文将会进行UGUI使用的简单介绍,与大家一起敲开UGUI开发的大门。原创 2017-01-08 17:56:03 · 25863 阅读 · 3 评论 -
【Unity3D入门教程】鼠标和键盘输入与控制
本文讲述了怎样进行鼠标的键盘的输入信息。外部设备输入的检测需要每一帧运行,所以检测的函数需要写在Update函数中。本文讲的内容比较简单,直接上代码吧。原创 2017-01-08 21:07:37 · 6965 阅读 · 0 评论 -
【Unity3D入门教程】Unity着色器基本使用方法
本文将会先介绍着色器的基本含义,然后介绍两种着色器,分别是表面着色器和顶点片段着色器。还有一种固定管线着色器,由于已经基本淘汰,就不再介绍了。原创 2017-01-09 15:37:17 · 17094 阅读 · 0 评论 -
【Unity3D入门教程】Unity3D播放音频和视频
在游戏开发的过程中,我们经常会用到播放音频和视频,我们今天给大家带来一种简单的播放音频和视频的方法,使用的是Unity自带的函数。原创 2017-01-09 21:06:17 · 5600 阅读 · 0 评论 -
【Unity3D入门教程】物理引擎之碰撞解析
Unity3D内置物理引擎,可以模拟物理效果。典型的一个物理效果就是碰撞。本文将会针对最简单的案例讲述Unity3D的碰撞规律。原创 2017-01-09 11:53:22 · 11394 阅读 · 0 评论 -
Unity3D中手机陀螺仪的使用
使用手机陀螺仪,可以获取手机的3D姿态,这在开发中是很有用的。当然现在的手机内置的陀螺仪都是比较廉价的,精度不高,但是作为实验设备看看效果还是可以的。本文将给出调用手机陀螺仪的简单方法。 首先,我们需要在场景中添加大量方块,作为观察对象。 控制陀螺仪的脚本:using UnityEngine;using System.Collections原创 2016-11-18 17:38:49 · 24407 阅读 · 19 评论