游戏开发unity3D
一粒细雨
读万卷书,行万里路……
展开
-
UGUI开发简单音乐播放器之一
如下先展示音乐播放器的两个主要界面: 主页面: 音乐列表: 正如上面上所示,这个音乐播放器中包含有的按钮有:播放按钮,上一首按钮,下一首按钮,随机播放按钮,重复播放按钮,播放界面与音乐播放界面的切换按钮,声音控制按钮。这些便是在这两个主要界面的主要按钮。 下面再看对于声音控制按钮对原创 2017-12-23 01:13:13 · 813 阅读 · 3 评论 -
协程
本文是个人对Unity协程的一些理解和总结.Unity协程长的有点像线程,但却不是线程.因为协程仍然是在主线程中执行,且在使用时不用考虑同步与锁的问题.协程只是控制代码等到特定的时机后再执行后续步骤.启动协程 Unity 5.x中使用StartCoroutine方法开启协程,其方式有以下几种.//形式一 StartCoroutine(CustomCorutineFn()); St...转载 2018-06-25 13:31:30 · 1082 阅读 · 0 评论 -
鼠标图标的替换问题
在指定条件下进行鼠标替换;当要求在鼠标覆盖到游戏对象上时才会更改鼠标的图标,但是此时该物体上面挂载有多个collider,比如,一个游戏对象上挂载有一个charactercontroller,还有一个sphereCollider ,sphereCollider是触发器用来检测外来对象的进入,所以他的半径比较大,但是在使用OnMouseEnter()方法进行鼠标覆盖检测时,先被检测到的却是这个Sp...原创 2018-11-06 01:03:17 · 428 阅读 · 0 评论 -
在角色踢腿达到最高时执行一个操作及在子弹接连几次集中统一个敌人时,敌人能即时重播受伤动画
一.先说第一个问题。问题:有时我们需要控制在角色播放动画的某一刻去执行某些操作,例如在主角挥刀到水平位置时,要创建一个挥刀特效。当角色踢腿达到最高时,要执行一下其他的操作等等分析:这主要是控制动画的执行过程,找到能控制动画播放的属性,同时查看动画播放到指定动作的时间,就可以执行上面要求的操作。解决:我测试了当角色踢腿到最高位置时打印一次“检测成功语句”;在AnimatorStateInfo...原创 2018-11-13 20:34:58 · 200 阅读 · 0 评论 -
C#中foreach以及unity协程背后的秘密
1.对于foreach来说我们并不陌生,我们经常要使用它来遍历集合,或者是对象中的集合,那么下面就来介绍一个遍历对象中集合的例子,然后借此解开foreach遍历背后的神秘面纱。using System;using System.Collections;using System.Collections.Generic;using System.Linq;using System.Text;...原创 2018-12-03 20:44:48 · 548 阅读 · 0 评论 -
UGUI中随意调整Text中的字体间距
UGUI中是没有可以随意调整字体间的距离的方法,仔细研究一下可以通过控制每个字体的网格顶点位置进行调整字体之间的距离,分析一下最简单情况:输入的文本是单行的,且末尾没有换行符;unity在UnityEngine.UI命名空间中定义了一个BaseMeshEffect抽象类,他提供了一个抽象方法ModifyMesh(VertexHelper vh),使得可以轻松地获得text文本中所有字体 的顶点...原创 2018-12-22 19:15:44 · 4178 阅读 · 0 评论 -
应用程序的登录注册功能
**主要内容:**对于使用Unity开发出来的PC端程序,实现登录注册功能。原创 2019-05-06 18:24:57 · 2047 阅读 · 0 评论 -
协程中排序后,在update函数中实行绑定操作之后显示会乱
在场景中2d背景icon的显示是使用绑定的方式,在m4uscrollviewBinding中是检测Scene2DUnitIcons属性以及时实现更新的。更新的逻辑是放到Update()函数中的。对Scene2DUnitIcons属性的处理是放在协程中进行的,原来的代码是:SceneUnitIcon icon = new SceneUnitIcon(index, unit.id, (int)u...原创 2019-05-13 15:13:35 · 247 阅读 · 0 评论 -
KTV歌词显示的控制处理一
接下来几篇博客记述用Unity实现KTV式歌词显示控制。包含的主要内容有整体的逻辑架构介绍,分模块进行分析,效果具体实现方法,关键技术点,与第三方音乐公司联调对接时歌词的校准处理等原创 2019-08-13 16:54:18 · 795 阅读 · 0 评论 -
【Unity3d游戏开发】浅谈Unity中的GC以及优化
Unity GC分析及优化介绍在游戏运行的时候,数据主要存储在内存中,当游戏的数据不在需要的时候,存储当前数据的内存就可以被回收再次使用。内存垃圾是指当前废弃数据所占用的内存,垃圾回收(GC)是指将废弃的内存重新回收再次使用的过程。Unity中将垃圾回收当作内存管理的一部分,如果游戏中垃圾回收十分复杂,则游戏的性能会受到极大影响,此时垃圾回收会成为游戏性能的一大障碍点。下面我们将会...转载 2018-04-27 12:33:04 · 502 阅读 · 0 评论 -
JSON文件的解析
本文主要记录一下JSON文件解析过程中的两种基本操作方式。 JSON文件的根可以是数组,也可以是对象。接下来就是基于这两种情况进行基本的JSON文件解析。 首先看以数组为根的JSON文件解析: 创建一个JSON文本文件json.txt如下:[ { "id": 1, "name": "天下无双", "damage&a原创 2018-05-17 15:05:47 · 44386 阅读 · 3 评论 -
UGUI开发简单音乐播放器之二
上一篇将音乐播放器的第一大部分仔细地分析了,这一篇我接着将音乐播放器的下篇说说。 下面来看看这一部分的层次视图: MusicList是一个Image他是整个编辑界面的显示区域,Title是一个Image他是歌曲显示目录区域,BackMenuBT是一个按钮,EditBT是一个按钮,Panel是一个显示屏,即一个显示区域。list是一个空对象,播放器运行后所有的歌曲都会创建到这个里面。 下面逐原创 2017-12-28 22:33:17 · 567 阅读 · 0 评论 -
unity发布android版本游戏时报错
发布android版本游戏时出现如下报错: 这就是说是player settings处出现错误,做如下修改即可: 如此便可正常发布运行;原创 2018-03-07 19:43:24 · 657 阅读 · 0 评论 -
详解摄像机平滑跟随物体算法(smooth follow)
using UnityEngine; using System.Collections;public class SmoothFollow : MonoBehaviour {public float distance = 10.0f;//目标物体与摄像机之间在世界坐标基础上保持水平上的距离public float height = 5.0f;//摄像机与目标物体之间的高度差publi...原创 2018-03-10 00:04:34 · 4356 阅读 · 5 评论 -
记一次线性插值方法(Mathf.Lerp())的使用体会
对Mathf.Lerp()方法使用体会源于一次开发游戏对警报灯闪烁问题进行处理时。 public static float Lerp(float from,float to,float t); 分析一下对线性插值函数的认识,就是在from与to之间根据t值比例乘以两者之间的差再加到from上,依次地逼近to的值,但是永远不可能达到to值;接下来将出示出源码:using UnityEng...原创 2018-04-10 00:24:23 · 2804 阅读 · 0 评论 -
事件处理的本质
当在点击一个按钮执行某个操作时,你有没有想过,为什么点击了这个按钮就会执行某个操作,这是为什么?那么接下来就让我来解开这里面的秘密。 用微软中定义的事件函数来说明这个问题是再简单不过的的事情了。 首先,点击按钮是一个事件,也就是说,当你点击了按钮就相当于是触发了一个事件,学过C#窗体编程的同学都知道,事件是其中常用一个属性,按钮的触发就使用了这个属性。 不闲谈了,解决实际的问题。 将按钮的...原创 2018-04-17 15:17:39 · 349 阅读 · 0 评论 -
Unity提供的消息推送机制
转载出处:http://blog.csdn.net/liulong1567/article/details/46463353概述 Unity提供的消息推送机制可以非常方便我们的脚本开发,它实现的是一种伪监听者模式,利用的是反射机制。 常用函数 关于消息推送,常用的函数有三个:”SendMessage“、”SendMessageUpwards“、”Broadcast...转载 2018-04-04 22:00:13 · 1386 阅读 · 0 评论 -
`vector3.angle(vector3 from,vector3 to)`使用的认知
vector3.Angle(vector3 from,vector3 to)这个方法的意图是求from向量与to向量之间的夹角,并且此夹角的大小为两者之间的锐角,所以,不管什么情况,这个函数返回的值都不可能大于180; 使用这个函数进行控制主角旋转时可以很简单地实现旋转到指定的位置。但是 有一个问题,在以下的代码中,这个函数求得的值,总是在预料之外抖动,如此导致了游戏物体的旋转不可控值;...原创 2018-04-18 14:13:45 · 11416 阅读 · 2 评论 -
unity3d事件函数的执行顺序
在Unity脚本中,有一些事件函数按照脚本执行的顺序执行。 这个执行顺序如下所述: 编辑器 reset:重置被调用来初始化脚本的属性,当它第一次连接到对象,也是使用重置命令时。 第一个场景加载 当一个场景开始时,这些函数被调用(场景中的每个对象一次)。 Awake:这个函数总是在任何启动函数之前被调用,并且在实例化预制件之后。 (如果游戏对象在启动过程中处于非活动状态,则只有在唤醒之后...原创 2018-04-06 17:05:23 · 385 阅读 · 0 评论 -
unity中的Text组件如何获得其中文本的尺寸
获得Text中文本尺寸的方法有两种:(1)比较笨的方法是,预先计算出每个字符的尺寸,比如“Oh我的Baby”这句话,想要知道他的物理尺寸,需要知道每个英文字符的物理尺寸和每个中文字的物理尺寸。可以预先将26个英文字符都测量一下(包括大写字符),中文字符基本上就等于Text.FontSize的尺寸,将这些尺寸数据存到Json文件中,然后解析获得配置字典。然后解析这句歌词。将他转化成字符遍历,依次分...原创 2019-08-28 20:48:35 · 4816 阅读 · 0 评论