自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (3)
  • 收藏
  • 关注

原创 Unity实现背包系统物品拖拽

1.要实现在菜单格子里拖拽物品如图。2.有物品的格子之间能够相互切换。实现方法也有多种,第一种是通过射线检测,检测拿到格子的位置赋值,但是这个效率不是很高。第二种是通过重写IDropHandler接口实现自带的方法OnDrop(PointerEventData evetData)这个方法在物品落下时调用。代码:Public Class Slot: MonoBehaviour...

2018-07-23 17:48:08 6551 1

原创 Unity FPS计算

FPS是指的游戏的刷新频率,一般是以1秒为单位计算的:那么就非常容易算出FPS的帧率;private const float update_Time=1f;private float frames=0f;private float time=0f;private string fpsStr=string.empty;void Update(){time+=Time.deltaTime;if(tim...

2018-07-16 15:01:10 570

原创 Unity 扇形区域检测物品

Unity检测一定范围内的物品,显示物品图标是游戏的常见功能了,一般有三种方法,第一种是通过触发器去检测常见用:Physics.OverlapSphere(target.position, searchRadius, 1 << LayerMask.NameToLayer(layMaskName));相交球。参数1,是相交球的原点位置,第二个是球的半径,第三个参数是可选参数可以是不同层级...

2018-07-10 17:47:26 5923

原创 Unity 用代码自动创建标签

using UnityEditor;using UnityEngine ;public class addTag:MonoBehaviour {public GameObject o;//被修改的物体void Start(){AddTag("MXLWD",o);}//添加tag标签void AddTag(string tag,GameObject obj) { i...

2018-07-05 17:50:45 1874 1

转载 Unity 3D常见面试题

最先执行的方法是:1、(激活时的初始化代码)Awake,2、Start、3、Update【FixUpdate、LateUpdate】、4、(渲染模块)OnGUI、5、再向后,就是卸载模块(TearDown),这里主要有两个方法OnDisable与OnDestroy 高频问答的问题:1.什么是渲染管道?是指在显示器上为了显示出图像而经过的一系列必要操作。渲染管道中的很多步骤,都要将几何物体从一个坐标...

2018-07-04 18:16:43 371

原创 Unity UGUI Button自定义触发控制

一般来说UGUI里的Button 触发是通过鼠标选中单击然后触发的。那么怎么自定义按键触发呢。直接上代码然后可以参考下方法:using UnityEngine;using UnityEngine.EventSystems;  public class MyUIButtonKeyTrigger : MonoBehaviour    {      public KeyCode myKey = KeyC...

2018-07-02 11:55:25 2318

转载 日学一算法---平方根倒数速算法

我们平时经常会有一些数据运算的操作,需要用sqrt,exp,abs等函数,那么时候你有没有想过:这个些函数系统是如何实现的?就拿最常用的sqrt函数来说吧,系统怎么来实现这个经常调用的函数呢?虽然有可能你平时没有想过这个问题,不过正所谓是“临阵磨枪,不快也光”,你“眉头一皱,计上心来”,这个不是太简单了嘛,用二分的方法,在一个区间中,每次拿中间数的平方来试验,如果大了,就再试左区间的中间数;如果小...

2018-06-13 16:22:21 398

原创 第三人称摄像机跟随控制脚本

很简单的第三人称摄像机跟随控制脚本,直接挂在摄像机的对象上就可以用了。public class SmoothCameraWithBumper : MonoBehaviour         {                public Transform target = null; //Was: [SerializeField] private Transform target = null;...

2018-06-08 17:06:38 819

原创 C#中如何把函数当做参数传递到别的函数中

【问题】C#想要传递函数参数,但是参数类型是函数,不知道如何传递。其实网上一大堆,都太啰嗦了。我就喜欢简单的方法。结合.NET委托的性质和直接用匿名委托传函数蛮简单的,希望新手可以自己试试。下面就是具体实现了  class Program    {        static void Main(string[] args)        {            A a = new A();  ...

2018-05-30 15:32:58 15535 1

转载 Unity Cinemachine插件学习笔记,实现单目标和多目标之间切换

Unity Cinemachine插件学习笔记,实现单目标和多目标之间切换*版本要求Unity2017.1及以上。参考资料: [官方] Unity 2017.1正式版发布 Cinemachine插件:Cinemachine。 结合Timeline实现动画:Unity Cinemachine插件学习笔记,结合Timeline实现简单场景动画 官网教程:Timeline and Cinemachine...

2018-05-10 14:12:00 2125

原创 Unity 实现任务系统 TaskSystem

本帖最后由 martin4500 于 2018-5-9 09:57 编辑这段时间比较闲,所以抽时间写了游戏中常见的系统,任务系统,可以接受任务啊,然后通过刷怪等条件去触发任务条件,直到完成任务。这个系统相对来说比较的简单,可以满足小型的游戏任务系统的基本要求吧!这里面的任务的描述是通过读取Json数据来获取的,当然你也可以去写Excel和XML格式的。序列化Json数据不是用的Unity自带的 J...

2018-05-09 11:08:22 11406 4

转载 unity万能的提示窗口

版权声明:本文为博主原创文章,未经博主允许不得转载。这里给大家一个通用的提示或警告窗口的框架首先先创建一个警告的Model类(不用继承MonoBehaviour)WarningModel [csharp] view plain copy using UnityEngine;  using System.Collections;  //声明一个警告委托  

2017-08-02 15:31:58 962

背包系统,读取Json数据生成物品,物品拖拽功能

实现了通过读取Json数据自动生成菜单物品,在空槽中的物品摆放等。

2018-07-23

Unity 任务管理系统 TaskSystem

自己结合公司项目,用Unity写的任务管理系统,可以自己添加任务计时功能,实现任务进度管理,任务接受提交等功能。

2018-05-09

Unity 反序列化工具Protobuf

using System; //需要用到MemoryStream using System.IO; using UnityEngine; //引入ProtoBuf命名空间 using ProtoBuf; /// /// 测试类 /// public class TestProtobuf : MonoBehaviour { /// /// 用于测试的数据类 /// [ProtoContract] //声明这个类能被序列化 public class UserData { //声明每一个需要被序列化的成员,编号从1开始 [ProtoMember(1)] public int id; [ProtoMember(2)] public string name; [ProtoMember(3)] public int level; } //测试代码 void Start() { //将要被序列化的UserData示例 UserData user1 = new UserData (); user1.id = 1; user1.name = "User1"; user1.level = 10; //打印user1 Debug.Log (string.Format ("user1-> id:{0}, name:{1}, level:{2}", user1.id, user1.name, user1.level)); //序列化 byte[] buff = null; using (MemoryStream ms = new MemoryStream ()) { Serializer.Serialize (ms, user1); ms.Position = 0; int length = (int)ms.Length; buff = new byte[length]; ms.Read (buff, 0, length); } //输出字节数组 Debug.Log (string.Format("Serialized data-> {0}", BitConverter.ToString(buff))); //反序列化 UserData user2 = default(UserData); using (MemoryStream ms = new MemoryStream (buff)) { user2 = Serializer.Deserialize (ms); } //打印反序列化生成的user2 Debug.Log (string.Format ("user2-> id:{0}, name:{1}, level:{2}", user2.id, user2.name, user2.level)); } } 作者:qufangliu 链接:https://www.jianshu.com/p/d9be1b3d2446 來源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

2018-04-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除