![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
u3d学习笔记
u3d_20171030
h5工程师
展开
-
u3d 工具写法:实现根据预设模板和配置,生成预设物体
[MenuItem("Tools/根据预设生成物品")] public static void CreateDocTemplate() { //获取事先做好的预设 GameObject templatePrefab = AssetDatabase.LoadAssetAtPath("Assets/Resources/Prefabs/DocTemplate/ResPrefab/Template_doc.prefab", typeof(GameObject)) as G.原创 2021-01-20 14:47:29 · 170 阅读 · 0 评论 -
U3D MvvM框架中的数据绑定(c#)
数据驱动用处以及缺陷设计思路上代码使用方式用处以及缺陷Mvvm 框架中有一个很重要的思想就是数据绑定,比如某一个数据改变了,有许多界面上的东西也要相应的改变,这个时候就可以在不同的地方写一个方法,将这个方法绑定到某个数据上,当数据发生改变时,将触发调用所有绑定在这个数据身上的方法这里有一个不如意的地方,一个数据可以被多个方法绑定没问题的,但是如果一个方法绑定了多个数据,那么每当其中一个数据变动,那么就会调用这个方法,所以一个数据的变动直接决定了一个方法的调用结果,无法由多绑定的那多个数据变化结果来共同原创 2020-05-15 17:05:30 · 740 阅读 · 0 评论 -
U3D_摄像机场景漫游
选中摄像机,打开Windows里面的Animation点击Create创建一个文件夹存放动画点击Add Property,选择Transform里面的Position点击Add Property,选择Transform里面的Rotation如图,选择不同的时间点之后,在场景中改变射线机的位置和角度就可以做到场景漫游...原创 2019-10-10 18:45:37 · 314 阅读 · 0 评论 -
c# 网络编程基础,socket篇[一]
1. 服务端 用c#创建一个控制台的新项目 创建方法StartServerSync()实现与客户端的同步服务,但是,这个缺陷很明显,有两个点需要等待 /// <summary> /// 同步式服务器 /// </summary> static void StartServerSync...原创 2018-04-06 15:29:31 · 200 阅读 · 0 评论 -
U3d_人工智能[三]之有限状态机
1. 大致思路由于npc会有很多种状态,不同的情况会有不同的状态,不同状态会处做不同的事情.为了方便所有状态的行为与状态之间的切换,我们创建一个所有状态的父类FSMState,并创建FSMSystem类来管理各个状态.2. 转换条件和状态首先我们先创建两个enum类型,用来存放转换条件与状态.在不同 的状态下,出现不同的转换条件会发生不同的事情./// <summary&...原创 2018-03-21 12:38:42 · 423 阅读 · 0 评论 -
C# 网络编程基础,socket篇[二]
1. 粘包,分包问题根据[一]篇的做法,如果客户端快速连续向客户端发送多条信息: for(int i = 0; i < 100; i++) { clientSocket.Send(Encoding.UTF8.GetBytes(i.ToString())); }那么服务端将不...原创 2018-04-07 20:25:00 · 227 阅读 · 0 评论 -
U3d_人工智能[二]之鸟群行为
1. 鸟群行为,三个力为重点 鸟群向着一个方向移动,在游戏中会给它们一个目标点,在朝着目标点飞行的时候,如果代码仅仅是让鸟群朝向目标点,然后向前移动,就会导致鸟群拥挤,特别是到达目标点之后鸟群会聚集在一起. 我们要实现的效果是: 1.鸟群不会聚集到一起(分离力) 2.鸟群每个个体的方向不会一模一样,但是总体方向是向目标点移动的(队列力) 3.个体鸟不会离大队伍太原创 2018-03-20 15:37:36 · 1730 阅读 · 0 评论 -
U3d_人工智能[一] 之A*寻路算法
1. 主要思想: 首先,寻路即使寻点,一个一个正确的点走过去,便达成寻路的要求. 这里,每个点都有3个属性:F,G,H.H是当前点到达终点的预计消耗,可以用距离表示,但是这里我们的计算方法是/**now和end都是点,一个是当前点,一个是终点*因此,这里计算出来的距离就是两点的x差和y差的和*/H = Mathf.Abs(now.x - end.x) + Mathf.Abs(n...原创 2018-03-14 22:41:30 · 403 阅读 · 0 评论 -
u3d之摇杆技术
下载摇杆插件(我上传了一个) 创建一个Easytouch 点击”creat”创建Easytouch 创建joystick 右键点击创建出来的Easytouch来创建joystick 获取joystick 这个时候该发挥程序员的功能了,开动脚本 public ETCJoystick joystick;//这里要获取摇杆对象根据joystick原创 2018-01-27 02:12:10 · 1056 阅读 · 0 评论 -
xml在u3d的使用[u3d_rpg游戏开发之物品管理(四)]
1. 声明就是在开头处写明这一行,有时候没写也不会出错2. 根节点跟节点的只能有一个,位于最外层,是xml文档的第二个结点,第一个结点是声明时候的那行(如果有声明的话)3. 注释注释方法为一般最好不要写在根节点里面,会被当成一个子节点,都是写在这个之间,如下代码总结前三点,也就是xml里面的框架了Equips>Equips>4. 头文件原创 2017-12-15 19:21:08 · 399 阅读 · 0 评论 -
物品拖拽[u3d_rpg游戏开发之物品管理(五)]
之前在网上找了好多方法,总是不适合自己,要么就是不能用之类的,我用的是2017的版本,在这里"全面"解析一下.首先创建一个脚本InventoryItem挂在需要拖拽的Image上,这里的Image是另一个Image的子物体,因为子的Imget我用来显示物品的相应物品的图片,而父的Image我用来显示格子的图片,这样就有了格子里面的物品,可以用来拖动,而且,格子的标签我设为"InventoryItem原创 2017-12-21 21:50:57 · 948 阅读 · 0 评论 -
u3d_rpg游戏开发之物品管理(三)
接下来就是暂时告一段落的最后一个功能了——当鼠标悬停于有物品的格子的时候,显示相应的物品信息 在第二篇相关文章里面有两个空的方法体,其实就是为了实现今天的功能而预留的.所以接下来的代码就是写在InventoryItemGrid这个脚本里的了. 接下来就让我们来实现这个功能1.声明变量依然是声明相应的变量来存储相应的数据,在u3d中的物品栏的ui下先创建一个Panel,可作为文字背原创 2017-11-23 23:20:33 · 912 阅读 · 0 评论 -
u3d_rpg游戏开发之物品管理(二)
1. 创建三个脚本 第一个是挂在物品栏上的,用来管理背包格子的,我这里取名为:Inventory 第二个是挂在格子上的脚本,可以管理具体的格子,比如格子里的图片显示,不同的物品就显示不同的图片,以及一种物品的数量等等,取名为InventoryItemGrid 第三个是挂在物品上的脚本,主要实现物品的拖拽功能,鼠标可以拖拽物品移动到不同的格子上InventoryItem2. 先实现第三个脚本的一原创 2017-11-22 21:13:10 · 1013 阅读 · 0 评论 -
u3d_rpg游戏开发之物品管理(一)
介绍 作为一个物品管理,这里提供的方法是:先创建一个.txt文档用来储存所有物品信息。所以当我们要进行管理时候第一步也将是获取到这个文档(用TextAsset类),之后读取并做相关操作。在这里我假设我们的物品有: 创建.txt文本文档,用来存储所有物品信息 注意: (1)这里的文本文档的编码格式要为UTF-8,否则u3d读取不到内容。设置方法为——文件-原创 2017-11-05 21:21:51 · 1978 阅读 · 2 评论 -
ugui根据图名动态切换Image图片
点击图片,将图片的Textrue Type设置为Sprite(2DandUI)将需要的图片放在Assets下的Resources下上代码 using UnityEngine.UI;//需要引入的头文件 public Image myImage;//获取需要切换图片的Image myImage.sprite = Resources.Load("图片名", typeof(Sp原创 2017-11-20 08:44:22 · 1358 阅读 · 0 评论 -
Vector3
- vector3.magnitude 返回一个float,为该向量的长度,也就是该点到远点的距离。- vector3.normalized矢量归一化:就是把向量转为单位向量(方向不变,长度变为1)比如:如果想让a点以速度speed延伸: float c= a.magnitude;//获取向量长度 a=a.normalized*c*speed*Time.deatleTime;//矢量a归一化原创 2017-10-30 13:51:53 · 486 阅读 · 0 评论 -
Unity3d鼠标与游戏物体的交互(方法体)
- OnMouseEnter()当鼠标悬停于该物体上时执行 OnMouseEnter(){}花括号中的代码,鼠标移上去一次就执行一次 - OnMouseExit()当鼠标移出该游戏物体时执行方法,一次 - OnMouseOver()当鼠标悬停于该游戏物体时,每祯都执行一次方法 - OnMouseUp()鼠标弹起- OnMouseDown()鼠标按下原创 2017-11-01 17:43:32 · 3503 阅读 · 1 评论 -
Unity3d设置鼠标指针的样式
- 设置默认指针Edit->Project Setting->Player->Default Cursor中设置,如下图: - 通过代码设置鼠标指针通过Cursor.SetCursor()的方法,需要三个参数 Cursor.SetCursor(Texture2D, Vector2, CursorMode); 第一个为一张2d图片。第二个为2d的一个坐标点,原创 2017-11-01 17:21:51 · 2860 阅读 · 0 评论