Unity3D
无罪之人
呜呜呜呜
展开
-
unity用MVC模式下Model层单例模式的基类脚本
unity用MVC设计模式一般要用Model层,而model层一般会用到单例模式,而单例写法有一摸一样,所以写个脚本偷懒一下吧一样的代码封装成基类,以后需要单例的model就继承这个积累就可以省去力气去敲单例的代码了。using System;using UnityEngine;using System.Collections;/// /// 不继承MonoBehaviour的单例类原创 2017-07-04 18:25:59 · 545 阅读 · 0 评论 -
Unity拖拽物体到另外一个物体中的检测相关脚本(萝卜和坑)
从前。。。有个兔子要把得来的几个萝卜埋到坑里面,现在就是检测萝卜埋坑里的方法,讲一下需求: 1.鼠标拖动萝卜可以放进不同的坑中。 2.当萝卜没有拖到坑中时就返回到原来位置 3.当萝卜拖到坑里时萝卜就放进坑里。 我是用TriggerEvent来检测的,顺便做了一些逻辑,语言描述不够好,还是上代码吧:using UnityEngine;/// <summary>/// 拖拽接口///原创 2017-07-11 10:34:06 · 1745 阅读 · 0 评论 -
Unity3D 实操OpenGL函数
今天让大家学习一下Unity3d里面的OpenGL 自带的API ,我们可以通过简单的使用OpenGL来在场景中利用相机渲染绘制图形。官方学习文档:https://docs.unity3d.com/ScriptReference/GL.html 1.第一步:通过相关官方的文档,我们可以了解GL接口以及一些标准OpenGL函数; 2.第二步:我们直接进入实操模式; 2.0 新建项目,在场景中创建转载 2017-06-01 18:12:51 · 3665 阅读 · 0 评论 -
Unity API(一)Unity中的脚本事件及其函数
常用的脚本事件函数 当在Unity中添加一个脚本,默认会有两个事件函数Start和Update,除此之外还有Awake、OnEnable、LateUpdate,OnDisable和OnDestroy等五个常用的,他们从时间线上表示了整个脚本的生命周期。这五个事件的事件顺序如下图所示(引用自蓝欧Unity引擎基础视频教程)。 Awake:当脚本加载时调用,只调用一次。Awake()在MonoBe转载 2017-05-20 10:57:19 · 770 阅读 · 0 评论 -
Unity Mecanim动画的实现(十):动画混合树、子状态机和状态行为
Unity Mecanim动画的实现(十):动画混合树、子状态机和状态行为1.动画混合树 混合树表示多个状态的混合调用,一般根据某些参数来实现这些动画状态之间的混合与切换,根据参数的个数可以分为1D混合、2D混合和直接混合。比如在之前的案例中,我们通过控制Float参数Speed实现了Idle、Run、Walk之间的过渡,我们这里也可以通过混合树来实现。1D混合如下图所示。 设定混合类型为1D转载 2017-05-20 10:46:39 · 990 阅读 · 0 评论 -
Unity Mecanim动画的实现(四):Animation Controller设置
Unity Mecanim动画的实现(四):Animation Controller设置 Animation Controller(动画控制器)是Animator的重要组成部分,是模型动画的驱动,动画控制器是通过动画状态机来实现不同动画剪辑的切换。 这里有两个关键词: 1.状态(动画剪辑),动画剪辑就是每个动画模型所可以执行的动画剪辑(Animation),比如休闲(Id转载 2017-05-20 10:40:21 · 1434 阅读 · 0 评论 -
Unity Mecanim动画的实现(五):实现武器的切换
武器切换是游戏或者工业仿真中最常见的功能,一般需要先在模型骨骼响应的节点设定空物体。具体步骤: 1、在响应骨骼节点添加空物体; 2、将武器或者工器具增加为空物体的自对象,并调节其Transform,将物体的Transform复制给空对象,自身的Transform重置。 3、通过脚本控制武器位置与武器的父子关系,实现武器不同持有状态的切换。 if(Input.GetKeyDown(K转载 2017-05-20 10:34:26 · 4412 阅读 · 0 评论 -
Unity Mecanim动画的实现(六):动画事件,实现动画过程中的事件处理
在实现武器的切换环节中,目前采取了代码直接控制的方式,在运行中可以发现,往往武器在动画还没结束之间就直接完成了位置的切换,这样制作的动画不够逼真。我们希望能够在某个动画过程中切换武器的位置。这就需要涉及到动画事件。 动画事件不明思议就是在动画过程中添加事件,促发某个事件。比如上个章节中的收起武器这个位置切换的操作步骤如图所示。 添加到动画事件转载 2017-05-20 10:31:46 · 1157 阅读 · 0 评论 -
Unity Mecanim动画的实现(七):动画曲线
通过动画事件,我们可以在动画过程中调用某个函数实现某种特定功能,如果我们需要在动画过程中调用多个函数,则需要在动画过程多个时间点插入动画事件。如果我们需要在动画中一个连续时间段中调用一个函数,则动画事件无法实现。可以说动画事件是在动画事件线进行离散式的事件调用。**如果需要进行连续式的函数调用,则需要借助动画曲线,比如需要一段动画时间播放一段声音。** 动画曲线是动画剪辑(Animation C转载 2017-05-20 10:26:59 · 489 阅读 · 0 评论 -
Unity AudioSource播放事件监听
恩恩,装装逼,其实不是我写的哈哈哈 这个东西放在你要监听的AudioSource组件的Object下面,当声音播放结束之后会有事件发出来,就可以在声音播放结束后搞事情(写方法)了。using System;using UnityEngine;/// <summary>/// AudioSource的播放状态监听,包含一个AudioSource公共成员./// 使用方法:/// AudioE原创 2017-05-09 20:49:39 · 7511 阅读 · 0 评论 -
Unity延时操作
我知道Unity有个Invoke方法可以延时,我也知道协程可以做延时,今天只是分享另外一种延时方式,供大家参考使用。using System;using System.Collections.Generic;using UnityEngine;public class DelayModel : MonoBehaviour{ /// <summary> /// 自己生成一个O原创 2017-05-09 19:53:41 · 953 阅读 · 0 评论 -
unity音频管理器
using UnityEngine;using System.Collections;public delegate void AudioPlayEnd();/** @ 创建时间:* @ 作者:想开店的程序员* @ 修改人:* @ 修改时间:* @ 描述:自定义音频辅助播放(必需)* @///////////////////////////////////*/public class Custo原创 2017-05-08 16:45:14 · 1589 阅读 · 0 评论 -
Unity Mecanim动画的实现(八):Animation视图
Unity Mecanim动画的实现(八):Animation视图目录第一部分:Animation视图的基本操作 第一部分:Animation 动画事件 第一部分:Animation动画曲线正文第一部分:Animation窗口的基本操作 除了通过三维建模软件制作动画剪辑之外,Unity提供了Animation视图来为模型制作动画,制作动画的方式与3D Max、Maya类似转载 2017-05-17 11:05:59 · 684 阅读 · 0 评论 -
unity鼠标左键拖拽旋转模型滚轮放大缩小模型
using UnityEngine;public class DragTest : MonoBehaviour{ Vector3 scale; float offset=0.2f; float maxSize=2.0f; float minSize = 0.4f; public float speed = 200f; // Use this for原创 2017-08-16 13:43:50 · 3045 阅读 · 0 评论 -
<Unity>鼠标拖动物体、按下鼠标左键旋转观察物体、鼠标滚轮缩放视野
http://blog.csdn.net/sinat_27456831/article/details/49366947转载 2017-08-16 13:47:11 · 1007 阅读 · 0 评论 -
Unity3D研究院之UGUI一个优化效率小技巧
无意间发现了一个小技巧。如下图所示,可以发现UGUI的Image组件的RaycastTarget勾选以后会消耗一些效率,为了节省效率就不要勾选它了,不仅Image组件Text组件也有这样的问题。 一般UI里也就是按钮才需要接收响应事件,那么大部分image和text是是不需要开RaycastTarget的。 但是问题就来了,Unity默认在hierarchy窗口Create->UI->...转载 2018-02-24 18:03:58 · 402 阅读 · 0 评论 -
如何快速优化手游性能问题?从UGUI优化说起
本文转自:http://www.ceeger.com/forum/read.php?tid=593805组图1WeTest 导读 本文作者从自身多年的Unity项目UI开发及优化的经验出发,从UGUI,CPU,GPU以及unity特有资源等几个维度,介绍了unity手游性能优化的一些方法。 在之前的文章《手游内存占用过高?如何快速定位手游内存问题》中提到,Mono内存和native内存是PSS内存...转载 2018-02-24 18:00:52 · 432 阅读 · 0 评论 -
Unity GUI(uGUI)使用心得与性能总结
本文转自:https://www.jianshu.com/p/061e67308e5f背景和目的小哈接触Unity3D也有一段时间了,项目组在UI解决方案的选型一直是用的原生的uGUI,因此本人也是使用了一段时间的uGUI,在uGUI的使用方面积累了一些自己的经验,在此进行一个记录与总结。本文接下来将会对uGUI的Runtime性能进行着重讨论,其它的因素也很多而且很重要,但是一篇文章讲清楚一件事...转载 2018-02-24 17:56:19 · 2699 阅读 · 0 评论 -
Unity3d 导入图片 自动修改Texture Type为Sprite (2D and UI) 及设置 Packing Tag为文件夹名
版权声明:本文转自http://blog.csdn.net/huutu 转载请带上 http://www.liveslives.com/ http://blog.csdn.net/huutu/article/details/45564555Unity3d 的新版 UI 系统在给我们带来很大便利的同时,也添加了一些小麻烦。每次从电脑中导入图片到 Unity3d 中都需要手动设置Texture Typ...转载 2018-02-24 17:32:28 · 3053 阅读 · 0 评论 -
UGUI性能优化
UGUI会自动检测优化,如果多个材质间没有遮挡或只有小部分不影响的遮挡则会合并DrawCall为一个。如下图:尽可能保证Text在Image的上方。字体的DrawCall就可能自动会优化,而不需要像NGUI那样让字体跟图片pack在一起来减少DrawCall。尽可能保证Image之间不存在不必要的重叠。UI变色:修改材质和修改顶点色两种方式合并DrawCall一定要是相同的材质,修改材质会将本来已...转载 2018-02-24 17:18:54 · 220 阅读 · 0 评论 -
简单的有限状态机Unity独家写法(呸~厚颜无耻之人)
博主不是一个会写博客的人,也不会去扫盲什么事有限状态机,但凡会用百度的同学自己搜一下大把大神文章给你们拜读,这里我介绍的是最最最简单的有限状态机写法,当然也是看别人的代码学习来的。 最最最简单的有限状态机就是利用一系列的switch-case语句写的,简单粗暴不容易维护,但是针对只有几个状态的模型就非常实用了。 现在给大家安利的是利用Unity协程的方式实现有限状态机,废话不多说原创 2017-12-22 14:05:41 · 871 阅读 · 0 评论 -
UGUI中按Tab切换InputField
本文转自风冻冰痕博客,固定链接: http://icemark.cn/blog/?p=253目前的UGUI在InputField里即使设置了Navigation也是不可以用键盘切换上下,所以自己写了个组件实现这个功能前提条件是要在InputField里设置Navigation,也就是必须能找到上一个控件和下一个控件然后将以下脚本挂在需要切换的InputField上,用Tab和S转载 2017-11-03 10:28:21 · 280 阅读 · 0 评论 -
在Unity中实现有限状态机
原文链接简介有限状态机,(英语:Finite-state machine, FSM),又称有限状态自动机,简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型 -- 引用百度百科的解释:有限状态机(FSM)是游戏AI的一种常用模型,我做一个简单的记录,在Unity中实现有限状态机模型.FSM的结构和逻辑整体结构分为4个部转载 2017-10-24 10:38:55 · 317 阅读 · 1 评论 -
unity ugui图片自适应文字内容大小
本文转摘自博客园: 倾城之叹 1、(UI提示框与文字) Unity Text组件需要与Image组件自适应新建如图的UI物体 如图为Image的RectTransform中设置Pivot(中心点),如果需要向上向左适应,则将中心点设置在Image的右下方,并添加Content Size Fitter 组件(放在父物体上,可以根据子物体的大小来控制父物体的大小),添加Horizonta转载 2017-11-07 15:12:31 · 5203 阅读 · 0 评论 -
Unity播放视频3种方式(2旧1新)
今天用unity5.6播视频,尝试了3种方式,查了一些资料,分享一下。注:其中有些属于转载。我只是搬运工。。。前2种方法见宣雨松大神的博客链接:Unity3D研究院之两种方式播放游戏视频(二十五) 。这里还在CSND上找到一个分享视频转换器的博客,其中也有一些播放视频的方法觉得写得也不错,贴出来吧:Unity3D播放视频下面重点介绍第三种方法:Unity5.6自带的VidePlay原创 2017-10-18 15:26:01 · 31864 阅读 · 1 评论 -
在Unity里点击按钮打开一个浏览器页面 点击关闭 关闭这个页面
原文链接:http://blog.csdn.net/chh19941125/article/details/46126467在Unity里点击按钮打开一个浏览器页面 点击关闭 关闭这个页面using System.Collections;using System.Collections.Generic;using UnityEngine;using System.Diagnos转载 2017-08-18 09:45:07 · 8887 阅读 · 3 评论 -
unity音频管理类
程序中需要播放的音频文件需要存储在 Resources/Audio 文件夹下面 (文件夹自己创建)。然后调用:AudioClipManager.GetInstance().FindClipByName("你要找的音频文件名");就可以得到想要的音频文件 class AudioClipManager { //音频字典 private Dictionary soundDict原创 2017-08-02 14:04:35 · 738 阅读 · 0 评论 -
Unity Mecanim动画的实现(九):动画层、遮罩与Ik动画
1.动画层 (1)新建动画层 可以通过 (2)动画层的属性。 Weight代表某个动画层的权重,权重为0,该层动画不对模型产生影响,权重为1时,将产生最大影响。 Mask:动画遮罩 Blending,该层动画与其他层动画的混合方式,包括Override(复写方式,即取不同层动画的中间值)和additive(直接叠加)。 Sync,同步。同步是本层动画直接同步转载 2017-05-17 10:58:04 · 1304 阅读 · 0 评论 -
Unity3D 创建脚本自动添加模板注释
相信很多人都喜欢在创建脚本时添加这样的注释说明,以前做Android开发用Eclipse设置过这样的脚本模板,所以也想在Unity上添加,从网上搜索资料得,首先找到Unity安装目录下的(注意:修改的是Unity脚本模板而不是vs或者momo里的)“Unity\Editor\Data\Resources\ScriptTemplates ”打开“81-C# Script-NewBehaviourScr转载 2017-05-08 16:50:23 · 931 阅读 · 0 评论 -
Unity3d UGUI缩放循环拖动展示卡牌效果
需求:游戏中展示卡牌这种效果也是蛮酷炫并且使用的一种常见效果,下面我们就来实现以下这个效果是如何实现。 思考:第一看看到这个效果,我们首先会想到UGUI里面的ScrollRect,当然也可以用ScrollRect来实现缩短ContentSize的width来自动实现重叠效果,然后中间左右的卡牌通过计算来显示缩放,这里我并没有用这种思路来实现,我提供另外一种思路,就是自己去计算当前每个卡牌的转载 2017-05-16 17:08:21 · 3782 阅读 · 2 评论 -
unity之动画编辑器
http://blog.csdn.net/yangxuan0261/article/details/52304448转载 2017-05-02 09:53:05 · 408 阅读 · 0 评论 -
Unity游戏动画 从入门到住院:动画状态机
http://www.gameres.com/680484.html转载 2017-05-02 09:52:11 · 691 阅读 · 0 评论 -
unity-动画状态机Animator
http://blog.csdn.net/yangxuan0261/article/details/52334151转载 2017-05-02 09:51:08 · 331 阅读 · 0 评论 -
Unity3D游戏美术全攻略:从入门到精通
http://www.gameres.com/msg_674582.html转载 2017-05-02 09:47:43 · 2042 阅读 · 0 评论 -
unity截屏脚本
using UnityEngine;using System.Collections;using UnityEngine.UI;public class Capturer : MonoBehaviour { public RawImage image; void Start() { image.transform.parent.gameObject.原创 2017-05-02 09:39:17 · 388 阅读 · 0 评论 -
MouseOrbit
using UnityEngine;using System.Collections;public class MouseOrbit : MonoBehaviour{ public Transform target; float distance = 30.0f; float xSpeed = 250.0f; float ySpeed = 120.0f;原创 2017-05-02 09:37:22 · 563 阅读 · 0 评论 -
鼠标旋转物体脚本
using UnityEngine;using System.Collections;public class NewBehaviourScript : MonoBehaviour { public Camera cam; float ay; float ax; // Use this for initialization void Start () { }原创 2017-05-02 09:36:24 · 654 阅读 · 0 评论 -
鼠标控制相机旋转缩放,带一点阻尼的脚本
using UnityEngine;using System.Collections;public class CameraController : MonoBehaviour { float xSpeed = 250.0f; float ySpeed = 120.0f; public float yMinLimit = -20; public float yM原创 2017-05-02 09:33:04 · 373 阅读 · 0 评论 -
C#中的Ref参数和Out参数
引用参数ref当一个参数带有ref修饰符时候这个参数就是一个引用参数。引用参数本身并不创建新的存储空间的。引用参数指向函数子句调用中作为参数给出的相关变量表征的存储空间,所以此参数的值就等于它所指向的变量。修过C的人这个应该很容易明白的。下面是关于引用参数的赋值规则:1、在一个变量被传递给函数子句调用中相关引用参数之前,它自身必须被明确赋值;2、在函数子句界定的范围内,引用参数转载 2017-05-02 09:30:55 · 1088 阅读 · 0 评论 -
Lua和LuaJit的差别
1. Lua是非常快的解释语言,甚至快于一些JIT,它最大的缺点是当出现大量的(re)alocating(分配或再分配)时会出现性能下降,可见其二叉树算法测试。2.Luajit非常疯狂的动态jit,非常闪耀的快速语言,但是当运行更长时间以后,它会被Java超越,也就是说,当分配了很多空间情况下,它的性能才非常好。原创 2017-05-02 09:29:24 · 5821 阅读 · 0 评论