Unity3D_技术
发财猫MoneyCat
爱编程,不爱BUG。
展开
-
【Unity3D】Unity3D加载obj格式的模型
创建两个脚本using UnityEngine;using System.Collections;using System.Collections.Generic;public class GeometryBuffer { private List<ObjectData> objects; public List<Vector3> vertices; public List<Vector2> uvs; public List<Vector3&原创 2020-07-24 13:37:12 · 3503 阅读 · 0 评论 -
【Unity3D】Unity3D基于移动端的旋转、缩放功能
其中Obj就是物体。把脚本挂到相机上,然后给obj赋值即可。using UnityEngine;using System.Collections;public class Test : MonoBehaviour{ public GameObject Obj; private int MouseWheelSensitivity = 1; private int MouseZoomMin = 1; private int MouseZoomMax = 5原创 2020-07-24 13:35:56 · 472 阅读 · 0 评论 -
【Unity3D自学记录】Resources加载
创建一个文件夹命名为Resources,将预设好的场景拖入例如Resources中有 A ,B两个预设创建一个脚本using UnityEngine;using System.Collections;public class ResourcesLoadObj : MonoBehaviour{ bool ol = false; private原创 2014-03-04 12:15:43 · 8627 阅读 · 0 评论 -
【Unity3D自学记录】组合键的使用
今天来说说组合键。原理也比较简单。代码如下:using UnityEngine;using System.Collections;public class DJH_Event : MonoBehaviour { void OnGUI() { if (Event.current.rawType == EventType.keyDown)原创 2014-03-07 15:50:04 · 10488 阅读 · 2 评论 -
【Unity3D自学记录】C#语法笔记
条件表达式:y=(x>=0)?(x+2):(x*x); 条件 式1 式2 条件为真执行1否则执行2switch语句switch(测试量){case 常量1:……;break;case 常量2:……;break;case 常量n:……;break;default: ……;break;}循环while(循环条件){//循环体……;……原创 2014-03-12 11:48:37 · 3547 阅读 · 0 评论 -
【Unity3D自学记录】Debug.Log()无法正常显示解决方法
今天在做项目的时候,突然发现Debug都不好使了。然后研究了一下,找到了一个解决方法:点开菜单的Assets,选中sync MonoDevelop Project 。问题就迎刃而解了。原创 2014-03-14 09:39:07 · 19191 阅读 · 2 评论 -
【Unity3D自学记录】Unity3D之KeyCode键值
Backspace 退格键 Delete Delete键 TabTab键 Clear Clear键 Return 回车键 Pause 暂停键 Escape ESC键 Space 空格键 Keypad0 小键盘0 Keypad1 小键盘1 Keypad2 小键盘2 Keypad3 小键盘3 Keypad4 小键盘4 Keypa转载 2014-03-17 17:58:14 · 2935 阅读 · 1 评论 -
【Unity3D自学记录】鼠标移动三维物体
创建一个脚本,如下:转载 2014-04-18 13:33:25 · 2420 阅读 · 0 评论 -
【Unity3D自学记录】SendMessage传递多个参数
SendMessage是一个比较强大的功能,原创 2014-04-29 10:45:56 · 16946 阅读 · 4 评论 -
【Unity3D自学记录】Unity3D代理委托模式
using UnityEngine;using System.Collections;public class DJH_Delegate : MonoBehaviour{ public delegate void Delegate1(); public Delegate1 OutTest1; public delegate void Delegate2(int原创 2014-05-29 09:56:43 · 1263 阅读 · 0 评论 -
【Unity3D自学记录】游戏开发之怪物AI
using UnityEngine;using System.Collections;public class BoosAI : MonoBehaviour{ //敌人状态 //敌人站立状态 public const int STATE_STAND = 0; //敌人行走 public const int STATE_WALK = 1;转载 2014-06-19 16:44:35 · 2571 阅读 · 0 评论 -
【Unity3D自学记录】异步加载卡顿问题解决
关于异步加载,很多人都是卡住,ran原创 2014-06-24 12:11:43 · 15855 阅读 · 0 评论 -
【Unity3D自学记录】脚本中Start()和Awake()的区别
Unity3D初学者经常把Awake和Start混淆。简单说明一下,Awake在MonoBehavior创建后就立刻调用,Start将在MonoBehavior创建后在该帧Update之前,在该Monobehavior.enabled == true的情况下执行。[javascript] view plaincopyvoid Awake转载 2014-06-24 13:07:06 · 872 阅读 · 0 评论 -
【Unity3D自学记录】代码获取隐藏游戏对象
GameObject GObj = GameObject.Find("OBJ"); GameObject obj = GObj.transform.Find("OBJ01").gameObject; obj.SetActive(true);原创 2014-06-24 13:14:38 · 7980 阅读 · 2 评论 -
【Unity3D自学记录】Unity3D游戏开发之连续滚动背景
在诸如天天跑酷等2D游戏中,由于游戏需要表现出运动的感觉,通常都会使游戏背景连续循环滚动以增强视觉效果,那么今天,博主就来带领大家一起来实现连续滚动背景吧! 首先来讲述一下原理,准备两张连续的图片(博主这里使用了一张图片,好吧,我偷懒了),我们使用正交投影的摄像机对准第一张背景,然后使用脚本让图片自右向左开始移动,当第一张图片移出摄像机的视野时,第二张图片立即接在第一张图的转载 2014-06-24 13:25:56 · 1025 阅读 · 0 评论 -
【Unity3D自学记录】将文字复制至系统剪切板
首先呢,我们创建一个脚本public UILabel LabelText;//把UILabel拖给LabelTextvoid CopyText(){TextEditor te = new TextEditor();//很强大的文本工具te.content = new GUIContent(LabelText.text);te.OnFocus();te.Copy();}原创 2014-03-04 11:52:39 · 16178 阅读 · 4 评论 -
【Unity3D自学记录】Unity3D游戏开发之跑酷游戏项目讲解
一、游戏策划 游戏采用2D界面,角色从左到右奔跑,在路段中随机生成障碍物和金币,玩家需要使用跳跃功能躲开障碍物,在游戏中玩家收集的金币数目越多,奔跑的距离越长,玩家的得分就越高。我们最终实现的界面效果如图所示,首先我们来讲一下游戏的原理,我们这里这里采用的方法是路段固定,移动摄像机的方法。换句话说,当角色开始移动后,摄像机和场景跟随角色缓缓向右移动。当角色跑完每一个路段距离的2/3转载 2014-10-08 15:24:45 · 3265 阅读 · 0 评论 -
【Unity3D自学记录】Unity3D之Url地址重定向(C#)
private string url; // Use this for initialization void Start () { HttpWebRequest myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create("这里填写Url"); myHttpWebRequest.AllowAutoRed原创 2014-10-08 11:19:30 · 3241 阅读 · 0 评论 -
【Unity3D自学记录】Unity5之GI设置简介
GI操作: 全局光照的特点在于能够捕捉间接光照,所以5以后,除开原来的direct light的效果,增加indirect light的效果,简单来说,就是除开光源之后,然后模型本身做为光源,幅射到别的模型上,层层递归后的效果。现不管是预计算实时GI还是烘培GI都只是针对静态模型。预计算Gi的实时光源与烘陪对应的烘培光源里的强度与反射强度都会影响幅射图与方向图的内容。需要注意,预计算Gi原创 2016-07-14 13:53:26 · 10360 阅读 · 0 评论 -
【Unity3D自学记录】Unity5之实时GI环境光
快速实时GI环境光 快速实时GI环境光可以用天空盒直接驱动环境光输入。这在环境光每帧都会发生变化的情况下非常不理想。所以替代方法是,由当前时间来控制环境光,并转换为关照渐变和环境光强度用于驱动实时GI系统。这些都可以在光照面板中设置: 更新环境光代码如下:using System; using UnityEngine; using System原创 2016-07-14 13:21:14 · 6861 阅读 · 0 评论 -
【Unity3D自学记录】鼠标拖拽物体移动
把这段脚本拖给想要拖拽的物体,然后加上碰撞盒就可以了。private Vector3 _vec3TargetScreenSpace;// 目标物体的屏幕空间坐标 private Vector3 _vec3TargetWorldSpace;// 目标物体的世界空间坐标 private Transform _trans;// 目标物体的空间变换组件 private Vector3原创 2016-07-13 10:22:43 · 4302 阅读 · 0 评论 -
【Unity3D自学记录】制作VR视频播放器
最近VR火的不要不要的,但是综合起来,VR资源最多的还是全景图片和全景视频,今天在这里给大家简单介绍一下如何用Unity制作简单的VR视频播放器。首先找到EasyMovieTexture这个插件,AssetStore地址:https://www.assetstore.unity3d.com/en/#!/content/10032导入之后可以看到工程目录里有以下场景转载 2016-07-13 10:19:29 · 14094 阅读 · 12 评论 -
【Unity3D自学记录】Unity5 之 standard参数
Unity5里面采用了一套全新的shader 叫做 standard shader,这套shader使用的就是基于物理的光照计算,而老的那些shaderUNITY已经不推荐使用,UNITY5认为我们大多数情况都应该使用standard shader。下图左面使用的是物理渲染,右面使用的是blinn phone,都用来表现一个很光滑的金属,没上贴图,可以明显的感觉到左侧的真实的多,这就是UNITY5原创 2016-07-13 10:17:17 · 5563 阅读 · 1 评论 -
【Unity3D自学记录】 Unity 延迟执行一段代码的较为优雅的方式
在unity中,延时执行一段代码或者一个方法或者几个方法的情况非常普遍。一般会用到Invoke和InvokeRepeating方法。顾名思义,第一个是执行一次,第二个是重复执行。看下定义:void Invoke(string methodName, float time);第一个参数是方法名(注意是字符串形式),并不是更方便的委托。第二个是延时多少秒。只执行一次。转载 2014-12-04 11:38:11 · 8112 阅读 · 0 评论 -
【Unity3D自学记录】导出切片精灵
假设有一张png/tga图集,导入到Unity,放置目录"Assets/Resources/UI"(UI文件夹可替换成其他的,重要的是要在"Assets/Resources/"路径下),默认为如下设置:为了可以使用Unity自带的精灵切割,要将纹理类型改成"Sprite","Sprite Mode"改成"Multiple","Format"改成"Truecolor",点击"Appl转载 2014-10-09 11:02:07 · 1987 阅读 · 0 评论 -
【Unity3D自学记录】利用WinRAR的自解压功能单文件发布Unity的PC版本包
Unity打包出来的PC版有一个exe文件,还有一个_Data文件夹,我们可以利用winrar的自解压的高级设置功能打包成一个单文件,然后给这个文件配置一个好看的图标。最终效果就是我们可以获得一个貌似安装程序的单个文件。首先安装一个winrar文件,360压缩神马的目测是没有自解压的高级功能的。第一步:第二步:转载 2014-11-11 14:49:15 · 3352 阅读 · 2 评论 -
【Unity3D自学记录】判断物体是否在镜头内
判断物体是否在镜头内。其实很简单的方法代码如下:using UnityEngine;using System.Collections;public class DJH_IsRendering : MonoBehaviour { public bool isRendering=false; private float lastTime=0; private fl原创 2014-03-06 11:32:11 · 10951 阅读 · 3 评论 -
【Unity3D自学记录】关于Animation(动画)倒着播放方法
一段动画如何让它倒着播放呢,原理很简单,代码如下:using UnityEngine;using System.Collections;public class NewBehaviourScript : MonoBehaviour { public GameObject AnimationObj;//带有动画的对象 // Use this for initiali原创 2014-03-12 14:34:00 · 24337 阅读 · 3 评论 -
【Unity3D自学记录】Unity3D游戏开发之鼠标滚轮实现放大缩小
今天为大家分享的是在Rpg游戏中十分常见的鼠标滚轮调整摄像机视野效果,首先我们先创建一个游戏场景: 接下来我们编写一段脚本代码:[csharp] view plaincopyusing UnityEngine; using System.Collections; public cl转载 2014-06-24 13:23:56 · 1324 阅读 · 0 评论 -
【Unity3D自学记录】自制作手机平衡球游戏
游戏预览图!一、在开始制作这个游戏之前,当然是要有一个模型!(百度网盘下载地址http://pan.baidu.com/s/1mg5FOm8)。里面包括模型和我的整个工程。整个游戏麻烦的地方就在于将模型导入后在放置在Screen中之后,要为每一个模型的部件添加Mesh Collider碰撞体组件。这个组件可以根据模型来自动附件一个和模型组件大小一样的碰撞体。游戏中一转载 2014-07-04 11:52:33 · 4047 阅读 · 1 评论 -
【Unity3D自学记录】Unity3D之自制小钟表
今天来写一个小钟表,其实很简单,就运用到了欧拉角。首先创建时钟、分钟、秒钟以及4个点(12点、3点、6点、9点)偷懒了~~没弄那么多点。时钟、分钟、秒钟这三个父级的中心一定要注意,我们旋转的是父级的欧拉角。(父级的中心在子级的顶点)如图:接下来我们来写代码,如下:using UnityEngine;using System.Collections;public原创 2014-07-23 15:23:05 · 2786 阅读 · 0 评论 -
【Unity3D自学记录】简单的鼠标点击控制人物走动
using UnityEngine;using System.Collections;public class PeopleControl : MonoBehaviour { //目标点坐标 private Vector3 mTargetPos; void Start () { } void Update () { //按下鼠标右键时 if(原创 2014-06-24 13:42:10 · 1419 阅读 · 0 评论 -
【Unity3D自学记录】Draw Call的简单介绍
Unity每次在准备数据并通知GPU渲染的过程称为一次Draw Call。一般情况下,渲染一次拥有一个网格并携带一种材质的物体便会使用一次Draw Call。对于渲染场景中的这些物体,在每一次Draw Call中除了在通知GPU的渲染上比较耗时之外,切换材质与shader也是非常耗时的操作。Draw Call的次数是决定性能比较重要的指标。对于IOS平台上来原创 2014-06-25 15:49:14 · 1301 阅读 · 0 评论 -
【Unity3D自学记录】Unity3d中的常见问题和解决方案
unity3d中的坑和解决方案 unity3d是一个很牛x的引擎,当然其也有一些东西是不太好或者说不习惯的,下面列举一些:1、制作特效时,使用animation记录的位置是相对位置,如果直接放到别的节点下会出问题; 解决方法:在特效根节点的上一层加上一个transform是(0,0,0) (0,0,0)(1,1,1)的父节点,之后再使用和处理父节点2、使用NGUI制作转载 2014-07-02 14:17:40 · 1711 阅读 · 0 评论 -
【Unity3D自学记录】Unity3D去掉exe版本的边框
[csharp] view plaincopyprint?using UnityEngine; using System.Collections; using System.Runtime.InteropServices; using System; public class Test : MonoBehaviour {转载 2014-08-15 15:49:05 · 3538 阅读 · 0 评论 -
【Unity3D自学记录】Unity3D游戏开发之自由视角状态下的角色控制(一)
在开始今天的内容前,首先让我们来学习下Unity3D中较为重要的一部分知识,理解这些知识是我们开始学习今天内容的基础。 1、Input.GetAxis():该方法用于在Unity3D中根据坐标轴名称返回虚拟坐标系中的值,通常情况下,使用控制器和键盘输入时此值范围在-1到1之间。这段话怎么理解呢?我们来看下面这段脚本:[csharp] view plainco转载 2014-10-08 15:20:58 · 1854 阅读 · 0 评论 -
【Unity3D自学记录】Unity3D游戏开发之自由视角状态下的角色控制(二)
在测试Unity3D游戏开发之自由视角状态下的角色控制这个项目的时候意外地发现了一个Bug。Bug出现在如下位置:[csharp] view plaincopyprint?//设置玩家跟随角度 if(Target.GetComponent().State==NoLockiVew_Player.PlayerState.Walk) {转载 2014-10-08 15:20:26 · 1196 阅读 · 0 评论 -
【Unity3D自学记录】遍历父物体下所有子物体
using UnityEngine;using System.Collections;public class ResourcesLoadObj : MonoBehaviour{ void Start() { foreach (Transform child in gameObject.transform) { Deb原创 2014-03-04 12:24:03 · 21847 阅读 · 0 评论 -
【Unity3D自学记录】Unity3d摄像机参数
1. Clear Flags:清除标记。决定屏幕的哪部分将被清除。一般用户使用对台摄像机来描绘不同游戏对象的情况,有3中模式选择: Skybox:天空盒。默认模式。在屏幕中的空白部分将显示当前摄像机的天空盒。如果当前摄像机没有设置天空盒,会默认用Background色。 Solid Color:纯色。选择该模式屏幕上的空白部分将显示当前摄像机的background色。 Depth转载 2014-06-25 15:51:19 · 1132 阅读 · 0 评论 -
【Unity3D自学记录】使用assetbundle时可能遇到的坑
在公司项目开发中,用到了assetbundle,由于是webplayer不像手机,流量限制几乎没有,所以场景都是用assetbundle打包后动态加载的,但是这个过程中,遇到不少坑:1.Editor版本不能读取与自己版本不同的assetbundle这个问题描述起来很简单:比如:老板原来让你用4.1打包(BuildAssetBundle)开发,开发完毕后,下半年,unity升级了,于转载 2014-07-04 13:32:22 · 1637 阅读 · 0 评论