自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (6)
  • 收藏
  • 关注

原创 Dots下给程序化生成的网格加上Lod

如何动态给Entity加LOD

2022-05-27 01:45:59 333

原创 记录一个在0.17版本BlobAsset的bug处理方法

话说现在都entity0.50了,还有人在继续用0.17吗?0.5不支持unity animation,不舍得自己以前撸的animation代码,就只能继续保持0.17了。。0.17的版本,使用Blob会有个错误提示:error ConstructBlobWithRefTypeViolation: You may not build a type T with Construct as T is a reference or pointer. Only non-reference types a

2022-05-14 13:27:05 112

原创 放一个Dots Event的简单实现代码

using ECB = EntityCommandBuffer.ParallelWriter; public interface IDealEvent<TData> where TData : IComponentData { public bool DealEvent(in TData eventValue, ref TData data); } public class EventSystem<TData,TDeal.

2021-06-09 00:24:50 221

原创 Unity HybridRender 视锥体裁剪

Unity HybridRender使用Unity.Rendering.FrustumPlanes结构体来实现视锥体裁剪。这个结构体基本都为静态函数,其中使用NativeArray<PlanePacket4>作为参数的函数是HybridRenderSystem中进行裁剪的参数。从试验结果看,如果需要在逻辑层判断是否在视锥体内,可以考虑使用FromCamera(Camera camera, NativeArray<float4> planes)构造视锥体6个平面,然后使用Inte...

2021-05-16 02:21:00 1076

原创 Unity Dots下有限状态机的实现

在我上一篇博客https://blog.csdn.net/moonstrace/article/details/114560794的文章里,针对如何利用ASTAR插件实现自动寻路时,利用了两个ENUM实现了一个简单的状态机。但这个状态机并不能具普遍适用。本文试图在这个基础上实现一个简单通用的有限状态机。 首先我们还是对有限状态机的功能进行拆解。首先,状态机应该与外部有交互功能,外部的输入要能够输入到状态机中。其次,状态机的核心功能是管理状态本身的改变,最后,要实现状态机的功能,其每个子...

2021-03-21 13:58:14 245

原创 利用状态机及Astar插件实现dots下寻路

本文主要讨论一种利用两层状态机将Astar寻路功能在dots下实现的功能。首先说下为什么要使用Astar这个插件。这个插件的功能很多其实不依赖于unitymonobehavior这一套体系,因此在转为dots使用时可以更加方便,并且可以最大程度的不在场景中通过gameobject来获得寻路功能。Unity本身自带的寻路目前没有更多的API,如果要使用Unity自身的导航系统,估计只能使用GameObject Injecte方式,在dots世界内外都保存一个副本,如此效率显然十分低下。为了将寻路...

2021-03-09 02:20:36 875 2

原创 利用运算符来自由组织unity动画协程代码

    我上一遍文章里提到了利用装饰思想来写一个协程帮助类,来实现动画组合的解耦。然后这个类由于直接使用了IEnumerator,会导致一个BUG就是传入参数不能随着动画结果更新,结果是动画协程执行的参数并不是我们期望的执行到该点的值,而是一开始生成协程链参数的初始值。解决思路就是使用委托,通过封装委托,来保证动画协程的生成一定是执行到该点后才生成。除此之外,Iem调用链条也很不直观,因此考虑使用...

2018-03-25 00:52:56 309

原创 一个unity 协程的帮助类

unity协程在写动画相关的代码时相当有用。但如果组织不当常常会导致思维混乱。这是一个使用协程的帮助类,利用装饰模式的思想最大化解耦。代码如下:using System.Collections;using System.Collections.Generic;using UnityEngine;using System;public class IEM : MonoBehaviour {

2018-01-27 20:28:12 638

原创 KBEngine 房间示例创建脚本调用解读

首先放个房间示例的资源路径https://github.com/u3dkbe/kbengine_unity3d_balls    这个例子很简单,客户端点击登录按钮后即进入场景,同时生成大量NPC。鼠标点击可移动吃分。不过这里只关心脚本涉及初始化这块。kbengine的服务器用python写脚本,各种系统回调以及自己写的回调夹杂在一起,不熟悉会相当很晕。。所以写这个也权当笔记。。。

2017-06-04 01:26:53 4497

原创 NGUI学习笔记3-功能脚本

上篇笔记写到,NGUI自定义的基础窗体实际上只有那么有限的几种,那NGUI是怎么实现强大的功能呢,答案就是通过脚本。通过挂接功能脚本,所对应的窗体立即获得响应的功能,相当的方便。那么NGUI怎么挂接脚本呢?一种是直接使用NGUI的attach菜单,另一种是象传统的那样直接把脚本拖到对应的控件上面去。这里建议使用第一种操作,因为这样免除第2种方法还需要设置脚本对象的操作。接下来我们看看NGUI at

2016-07-24 23:28:03 1181

原创 NGUI学习笔记2-窗口及子类

NGUI 窗口及子类总共有sprite,label,texture,,2d sprite,widget几类。这是NGUI的基础显示单元,通过和不同的脚本结合,从而产生强大的效果。   首先我们看widget。这个widget本质上是个容器,但单独把这个放场景基本是不显示的。所以他的最大作用就是分类管理。但是考虑到所有子类都从widget派生,实质上所有子类都有容器的功能。比如,在设计UI时,可

2016-07-18 23:53:42 406

原创 NGUI学习笔记1-菜单

最近某个项目,项目方指定要求UI系统要用NGUI。。考虑到现在unity NUGUI很火,所以写这篇文章,也是对以后的一个参考。    从总体上看,NGUI的使用是很方便的。新建一个基础组件,然后挂接一个对应的功能脚本,是不是很强大。所以我觉得这东西火就火在这里,给了策划和美工更多的空间。    首先大致看下NGUI菜单的功能。    Selection:用来控制层显示。在上层的显然会

2016-07-17 13:02:42 572

原创 unity实现自己的一个消息系统

unity中应该至少有2类Event系统。一种是UnityEvent,这个用起来很方便,只要在脚本里定义了一个UnityEvent,就可以在面板通过拖拉的方式设置消息的响应者。但问题是如果是不能在面板拖来拖去的场合,就有点繁琐。而且假如有一大波新对象需要接收老信息,这个维护起来很是很繁琐的。还有一种是利用了Eventsystem的消息系统,但这个系统与ui系统整合,虽然仍然可以自定义消息,但是只要

2016-07-02 23:46:48 4702

原创 从头开始学cocos2dx笔记之八(ActionTest)(一)

首先让我们来看看ActionTest里面教了我们什么。第一个LAYER演示了如何进行人为的转移,不过我直接理解为设置初始属性什么的似乎要容易理解一点。接口都是SPRITE的接口。第一个层对应的类是ActionManual,这个类继承自ActionDemo,在ActionDemo中,进行了初始化,读取并创建了3个精灵以及下方的3个按钮和MainMenu。精灵的创建也很简单,用的CCSprite::c

2013-12-26 02:13:02 3899

原创 从头开始学cocos2dx笔记之七(TestCpp之controler)

TestController这个类继承自CCLayer,因此可以通过addChild函数增加各类菜单对象。在构造函数中,可以看到,类首先创建了右上角的关闭按钮,然后创造中间竖排的菜单组。代码:CCMenuItemImage *pCloseItem = CCMenuItemImage::create(s_pPathClose, s_pPathClose, this, menu_selector(

2013-12-24 00:31:11 1974

原创 从头开始学cocos2dx笔记之六(TESTCPP之分辨率适配)

有了个大概的总览后,自然而然就有了个做个实际的小游戏出来的想法。但是这个想法付诸实施之前,还需要了解cocos2dx具体有那些功能。一本教材只是让我们了解入门的东西,更加强大的功能还是需要更多的了解。那怎么了解cocos2dx的功能呢,就如ogre有相应的功能演示示例,cocos2dx也有对应的功能演示示例,那就是TESTCPP。由于android环境无法启动模拟器运行,所以学习这个演示示例以及查

2013-12-22 18:52:30 2578

原创 从头开始学cocos2dx笔记之五(总体印象)

环境搭建好当然就是学引擎本身了。不过学也有学法,看英文不见得是最优。我在网上找到本教材:cocos2dx高级开发教程,感觉很不错。看了这本书,基本对cocos2dx有个大致的了解了。这几天走马观花的读了一下,基本上对cocos2dx有以下印象:1 因为跨平台的需要和很多其他原因,cocos2dx编程需要尽量遵循一定的语法规范,比如:    构造函数要用init()或者其他creat()之类

2013-12-19 01:54:09 5499

原创 从头开始学COCOS2DXb笔记四(导入COCOS2DX ANDROID官方示例)

NDK环境搞定之后,需要迫切明白的怎么让COCOS2DX的项目和NDK结合起来。鉴于现在还不知道COCOS2DX的任何细节,所以我们把目标定为正确导入一个COCOS2DX的示例并成功运行,我觉得这个要求不高。。但是没想到搞这个还是费了很大的劲。网上搜的很多文章照着操作,但是都不正确!最后是怎么解决的呢。。看的是官网示例下面的README。。这充分让人明白,大学时候考个4级有多么的重要。。为了不

2013-12-12 01:25:21 4950 1

原创 从头开始学COCOS2DX笔记三(搭建NDK环境)

最近新换了电脑,将操作系统升级为64位系统,于是还没开始正式学引擎,又重新安装了一次环境。。又加深了印象。。第一用64位系统的时候,心里还是很打鼓的,怕出什么特殊很郁闷的问题。不过安装好环境回头来看 貌似和32位大同小异啊。首先还是先安装VS2012,然后去下载JDK JRE ANDROID-ADT-BUNDLE 64位的开发包。流程和32位没啥不一样,就只是VS2010换成2012,下的包从

2013-12-06 02:23:41 1722

原创 从头开始学习cocos2dx之笔记二(搭建ECLIPSE ANDROID JAVA环境)

想了想决定还是先搭建个安卓环境出来先,免得以后出错。但是。。cocos2dx中文网上的帖子居然直接说搭建安卓环境不关他们的事。。我了个去啊。。害的我辛苦又在网上搜索一通,最后总算大致明白了搭建安卓环境的步骤,如果我没理解错的花,应该是要先搭建个安卓JAVA的开发环境,然后再这个基础上安装个NDK的开发包,这样可以用C++来开发安卓程序,虽说程序是用C++写,不过不懂安卓JAVA安装调试,估计也不会

2013-11-14 00:35:16 2002

原创 从头开始学cocos2dx之笔记一(搭建VS环境)

最近对移动开发开始感兴趣了。cocos2dx这个貌似很火,而且很吸引人,一次编码跨平台,还有很多成功实例。要学就学你了。首先是准备工作,下引擎和环境搭建。貌似引擎主页是英文,不过中文网一样可以下啊 而且还有几篇中文教程。网址在这里:http://cocos2d.cocoachina.com/按照教程里面说,貌似使用VS2010开发win32的比较简单。。不过谁会拿这个开发win32程序呢。

2013-11-06 00:56:36 1709

原创 效率。。。OverlayElement。。。

      这段时间我继续在OEGUI现有基础上实现了一个RenderBox,这个RenderBox实现了渲染到纹理的效果,可以用来显示模型、画中画等一些特殊效果。但是很遗憾的是,我同时也发现,OEGUI的渲染效率实在是太低了。。这个是在我做了一个显示FPS的辅助窗口后发现的。随着组件的增加,渲染的batch也随着增加,直接导致渲染的效率低下。      按照一般来说,ogre应该把所有的re

2010-05-11 21:21:00 1520 1

原创 OEGUI0.2版本放出 支持SDKTray已经实现的所有GUI组件

一 介绍    OEGUI是一个完全基于Ogre1.7的GUI组件.这个组件在Ogre的OverlayElement的基础上,添加了功能,实现了一个轻量级的GUI解决方案.     下载地址:http://download.csdn.net/source/2297691二 特性    1 支持使用Ogre::Overlay脚本创建GUI    2 各个组件的外观以及功能均可以运

2010-04-28 21:17:00 2006 5

原创 OEGUI0.1版本脚本介绍

首先放一个我上篇博客中提到的一些脚本,在这篇文章里,将对一些脚本参数进行详细介绍template container Mouse(Default/Mouse){ metrics_mode pixels material SdkTrays/Cursor border_material SdkTrays/Cursor width 32 height 32}tem

2010-04-19 21:52:00 1016

原创 OEGUI0.1版本放出!!欢迎大家测试使用!!支持使用OgreOverlay脚本创建GUI!!

恩..这个东西我把他命名为0.1..我写这个的动机是由sdktray激发的灵感.不过我写完现在的代码后发现,差不多所有代码都重新改写了.因为实际上还有很多东西需要扩充,但是我最近时间有点忙,而且基础的东西我已经实现了 所以我先把代码放上来. 1 特色    OEGUI最大特色就是支持Ogre自带的脚本格式,并且继承了所有目前OverlayElement脚本中可以使用的属性.这意味着大家

2010-04-19 20:58:00 1422 3

原创 mygui 与 sdktray 的比较

      mygui是个很好很强大的gui系统.那这个系统与sdktray比较,哪个更有优势呢?      1 从实现来看,sdktray基于Ogre的overlay和material系统;而mygui则完全基于顶点等非常底层的东西.在mygui的OgrePlatform头文件的文件名可以看见,mygui是基于顶点和纹理来实现的.所以效率上mygui可能比较要好.Ogre wiki上也是这么

2010-04-05 00:19:00 2271

原创 Ogre貌似开始推荐MYGUI了~~

      近段时间出差,回来突然发现Ogre的wiki上多了mygui的介绍~虽然以前下1.7的时候就有预感CEGUI即将完蛋,不过感觉偶还是预测的蛮准的~~不过我也算是后知后觉了,这个mygui的更新时间是1月...现在Ogre暂时还没有把mygui加入自己的包里面,估计也是看大家使用的反响吧.而且也不知道写1.7 sample的那个家伙是不是也准备搞自己的gui.如果大家对mygui有兴趣,

2010-04-04 21:08:00 5223 3

原创 基于OgreBites::Widget的OEGUISystem 介绍

Q:什么是OEGUI?A:OEGUI是一个基于Ogre::Overlay实现的GUI系统.在Ogre1.7版本的实例程序中实现了一些GUI的组件,OEGUI在这些组件的基础上仿照CEGUI实现了一个简单的GUI系统. Q:OEGUISystem与CEGUI比较如何?A:OEGUISystem现在仍然还是很简陋的,仅仅实现了一些基础的东西.比起CEGUI,功能很多地方还不完善.但OE

2010-03-30 02:41:00 1790 5

原创 使用boost::bind和boost::function实现工厂模式

      工厂模式有很多变种,我使用boost::bind和boost::function实现了一个我自己的版本.这个实现方式与其他方式相比,好处在于编码简单,实现方便.添加新的类创建功能的支持是在程序运行中实现的.对以前写的代码根本不需要任何的更改.      思路:在工厂中保存一个字符串与函数指针pair的列表.函数指针指向类的创建函数.当要创建新的类的实例的时候,查找这个列表,并返回结

2010-03-24 03:08:00 2473

原创 基于Ogre::Bites实现自己的GUI系统(4)--包含代码下载地址

      今天搞定了EditBox.实现的原理就如昨天文章所说,每一行分别使用一个TextAreaOverlayElement来保存对应的文本.同时在判断字体长度的时候,使用Ogre::DisplayString类的接口.目前看上去工作良好.本来还有计划实现EditBox文本图片混排的,思路都想好了,每一行使用一个OverlayContainer来保存,每一行的文本和对应的图片是对应这个Over

2010-03-24 02:20:00 1761

原创 基于Ogre::Bites实现自己的GUI系统(3)

       今天考虑实现自己的EditBox.今天很郁闷,走了很多弯路....      Ogre实现了一个默认的TextBox,在这个基础上增加功能大概就可以实现EditBox.首先修改Widget的虚函数,增加响应键盘输出的方法,然后在EditBox中实现他.TextBox有个默认的方法AppendText(),大概可以直接拿来用,或者使用setText(mText+input)也可以.

2010-03-23 03:37:00 2962 2

原创 基于OgreBites::Widget 实现自己的GUI系统(2)

今天写了自己的OEGUISystem类这个类功能主要如下:1 管理鼠标.鼠标的外观显示使用了一个OECursor类来管理.如果不关心自己创建鼠标的外观,OEGUISystem默认实现ogre sample中的那个鼠标外观. 2 管理事件.OEGUI事件的触发和CEGUI类似,调用::OEGUISystem::getSingleton().inject***().函数返回true 表

2010-03-21 19:34:00 1753

原创 基于OgreBites::Widget 实现自己的GUI系统(1)

      分析完了Ogre的sdktray之后,现在尝试在widget的基础上实现自己的GUI系统.这个gui系统应该分为3部分.widget是一部分,一个全局的管理类应该是一部分,还有一部分则是用户对widget进行组合实现自己的功能部分.sdktray中把后2个功能整合在一起了.      首先是widget部分,这些组件的底层功能Ogre已经实现了,唯一需要更改的就是他们的外观,为了实

2010-03-20 19:31:00 2245

原创 Ogre 1.7 SDKTRAY 初探

      Ogre 1.7 这个版本比以前有了很多的变化.其中之一就是在Ogre官方不再包含CEGUI的组件.但是尽管没有使用CEGUI,在官方的demo中仍然可以看见有gui的功能,那么Ogre又是怎么实现的呢?      根据官网的说明,新的gui系统使用的是一个叫"tray"的系统.这个系统的主要代码在SdkTray.h这个文件之中.sdktray使用的Ogre overlay来实现g

2010-03-20 13:18:00 4909 3

原创 使用消息钩子实现CEGUI中文输入

      CEGUI是OGRE默认推荐的一个界面库.虽然Ogre官方表示CEGUI不是唯一的选择,但是我想很多人会因为Ogre的关系而选择CEGUI库.但是CEGUI内部使用的是UNICODE,使得在支持中文上有一些问题.      目前网上解决方案大多是不使用Ogre的默认的窗口,而是自己使用windows API创建自己的窗口,处理WM_CHAR消息,实现中文输入.但我觉得这个方案似乎动

2010-03-14 20:49:00 2945 4

一种使用Unity Animation的简单动画混合

利用Unity官方Animation示例里的两种动画节点,来实现外部输入index值时,自动将目前动画clip自动混合过度到指定index动画clip的功能。

2020-08-27

UNITY著名地形插件GAIA中文机翻说明文档(全)

GAIA插件1.9.2的中文机翻说明文档。部分名词翻译不准确,请对照英文版查看。

2019-08-11

OEGUI0.2 基于Ogre::OverlayElement的GUI

OEGUI是一个完全基于Ogre1.7的GUI组件.这个组件在Ogre的OverlayElement的基础上,添加了功能,实现了一个轻量级的GUI解决方案.

2010-04-28

OEGUI0.1版本

OEGUI最大特色就是支持Ogre自带的脚本格式,并且继承了所有目前OverlayElement脚本中可以使用的属性.这意味着大家可以自由利用Ogre的材质系统,随意的改变自己gui的外观和行为而且不用改变任何代码.我相信这个gui是个很容易扩充的gui,同时也是运行时有非常大自由度的gui之一.

2010-04-19

OEGUISYSTEM基于OgreOverlayElement实现的GUI系统

OEGUISYSTEM是基于OgreBites::Widget类实现的GUI系统.Widget是基于Ogre Overlay系统实现的.与其他GUI系统相比,OEGUISYSTEM可以自由的使用Ogre的材质脚本和Overlay脚本,从而创建强大的界面效果.

2010-03-24

VBA FOR EXCEL 编程资料

VBA编程资料 很好的学习帮手 内含2个文件 一个针对EXCEL2000 一个针对 EXCEL2002

2009-07-15

空空如也

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

TA关注的人

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