Unity RPG 黑暗之光 问题记录 上 (1-63 地形场景 角色选择 行走 相机跟随、旋转、缩放 任务系统 面板栏 背包系统 状态系统)

日期: 栏目:产品中心 浏览:23 评论:0

  职业选择

  鼠标点击移动 旋转 缩放

  药品 装备 任务NPC

  状态 装备 技能 存档

  代码跟原视频的有所改动,主要是主角行为逻辑

  3方资源:RPG NGUI StandarAssets

  进去关闭自动生成

  在这里插入图片描述

  改变Shader类型(这么多个,一个个改),然后重新拖地图。原类型Toon/Basic

  在这里插入图片描述

  paint texture移除重新画

  重新画的贴图很模糊,法线也不对

  Terrain数据文件丢失,重新做吧,已经是官方的初始文档了

  第二种可能,照明设置中。开启了雾气

  后面发现第3种可能,Unity的优化,让场景在远的变这样,拉近点又恢复好了

  在这里插入图片描述

  地表的Texture个还是刷不上去

  Unity 3d ,地形上刷不了纹理的原因

  Tree选项卡就是写入Terrain中,不像直接拖入场景中可以移动

  画笔大小要大于树密度,可以体现出随机疏朗,不然后太整齐

  在这里插入图片描述

  在这里插入图片描述

  在这里插入图片描述

  移到window/渲染/渲染设置(渲染或照明)中‘

  在这里插入图片描述

  unity 2018.4.32f1对应的NGUI版本

  NGUI Next-Gen UI v3.12.1 (Jun 29, 2018)

  在这里插入图片描述

  有个情况是我把所有的Assets都新建了个文件夹来保存,之后重新导到根目录,可以了。

  在这里插入图片描述

  这里是NGUI的Button的图片的添加,图片要加入图集内,需要图集。

  打开NGUI/打开/图集编辑器

(问题)新建失败

  unity nGUI atlas 将文件保存在项目资源文件夹

  在这里插入图片描述

(了解)

  对比可用的图集,有多了材质,texture两个属性

  在这里插入图片描述

(可行)新建 == 先复制再修改

  对比可用的图集,有生成.mat .png .prefab文件。

  所以尝试着复制这三个,再修改。(可行)

  保存的位置一般是资源同文件夹

  在这里插入图片描述

  点x,再点Delete。删多个点多次x,Delete只需点一次

  在这里插入图片描述

  触发器大小默认为0,要撑起来,跟按钮一样大

  对象的添加,有说Tag的是,但觉得浪费。直接public

  .SetActive大写

  一开始按就显示加载游戏等的按钮,但想动画结束后再显示,开始时加计时器

  PlayerPrefs是系统自带的,往里面存键值对

  检查

  音频文件(文件夹中播放看看)

  重启软件

  AudioSource叉出去,重新加

  还有以下:

ProjectSetting(忘了要看什么,音量不为0?)

  在这里插入图片描述

游戏Mute(关闭静音)

  在这里插入图片描述

组件Mute(关闭静音)

  在这里插入图片描述

组件音量(最大试试)

  在这里插入图片描述

  导入Moedl

  导入,加入角色选择的UI到RPG的图集里面(打开图集,选择UI后点击Add/Update)

  将UIRoot的相机类型设为UI

  在这里插入图片描述

  看是实例场景1,2,7,9,10,12,13,14,15和tutorial都是坏的

  在这里插入图片描述

(失败)重新导

  场景恢复了,但是toolbar还是拖不出东西

(失败)更换NGUI版本

  我的unity是2018.4.32f1

  不能用的NGUI是NGUI Next-Gen UI v3.12.1

  可以用的NGUI是NGUI Next-Gen UI v3.11.2

  可以用的NGUI也有点不正常,样式不正常

  在这里插入图片描述

(解决)过了一会又没了

  发现只要我更新了自己生成的RPG资源,就一定出现NGUI的错,也就是两者起冲突了。

  然后看着下图,有又是trim,又是replace,就全取消试试,暂时解决问题

  一个文件夹一个图集,不要跨文件夹吧、(也许有这个原因)

  NGUI放根目录Assets吧(很想跟其他导入的资源放一块)

  在这里插入图片描述

NGUI的输入框和其他的并存了,PrefabTool也能拖拽

  在这里插入图片描述

  Prefab mat 缺少png

  应该从资料中找一下.png那张图拖进去。或者重新导

  在这里插入图片描述

  重新add进texture

  Shader error in ‘Transparent/Refractive’: Too many texture interpolators would be used for ForwardBase pass (9 out of max 8), try adding #pragma target 3.0 at line 41

  在这里插入图片描述

  加了确实没报错,不过没用到

  Unity shader error: “Too many texture interpolators would be used for ForwardBase pass”

  分开的照,合并显示在屏幕上

  在这里插入图片描述

  材质 standard

  在这里插入图片描述

  切换角色,要挂在按钮上

  我想读文件的,即读取上把文件夹当作组件(但没学过,电脑里的游戏,直接改文件夹中的数据的日子啊 )

  在这里插入图片描述

  问题描述

  上下,选择按钮都可以动,只有输入框不能点击

  流程介绍

  节A挂一个UIInput的节点,来接收输入框Label;

  节点A被脚本引用,用value来取里面的字符串存在PlayerPrefs里面

  错误排查

  节点A是UIRoot没问题,是输入框根节点有问题(其他场景不会)。

  因素:UIRoot、输入框根节点的Depth是0,Label是1,都一样

  因素:碰撞器,结果是盒状触发器的问题,要选2D盒状触发器

  因素:该案例中submit可以不用写

  因素:挂UIInput的节点在运行后,会自动加上UI Input On GUI的脚本

  我改这就消失了

  Invalid texture used for cursor - check importer settings or texture creation. Texture must be RGBA3

  在这里插入图片描述

  在这里插入图片描述

  修改NGUI的相机剔除遮罩,选择default 或者 Everything(也是default起作用)

  在这里插入图片描述

  在这里插入图片描述

  有了下面的文件,Tags.group “Group”,并且敲出Tags后是有提示的(Tags.p 可能就有 Tags.player 的提示)

  好处是:写得快,不写错

  MainCamera的标签

  Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition)会报错 空引用

  不是hit.collider.transfrom.position(会跑到世界坐标原点),而是 hit.point

  视频时

  鼠标下点,isMoving=true

  鼠标上抬,isMoving=false

  而鼠标下点到上抬的过程是,鼠标一直按着的时候,这过程isMoving=true

  这样做到了下点按着,更新朝向,抬起不更新

  上面做的后果是Update实例太多次,按着鼠标时计时

  y是玩家的y

  在这里插入图片描述

  因为是根据鼠标状态,而不是Vetor3.Distance

  Update设置状态

  LateUpdate设置动画

  枚举变量的public会有下拉项的样式

  在这里插入图片描述

  尤其是y值的过高,导致距离一直处于不到达的状态,该情况下玩家一直forward

  在这里插入图片描述

  按住鼠标右键旋转,上下角度钳制(10,80)

  值的记录要在RotateAround之前

  该材质的类型standard

  在这里插入图片描述

  丢失一次,尤其有按钮的,加图片很麻烦

  发现是复制的场景,原来的没坏,但不清楚现在的为什么坏了

  在这里插入图片描述

  有关透视

  在这里插入图片描述

  在这里插入图片描述

  油

  场景中看transfrom看是680到150,就可以达到效果

  Tween看是700到-1410才能达到想要的位置

  在这里插入图片描述

  在这里插入图片描述

  在这里插入图片描述

  Material材质那里加一次字体,显示黑色字体,又None掉,白色,正常显示

  感觉像给NGUI提示,快用字体啊

  在这里插入图片描述

  正常只有1个(我也只有一个),现在是运行后左边有一个不动的,右边那个是Tween Position过来的加粗样式

  在这里插入图片描述

  太长照到后面的

  调相机的远近

  在这里插入图片描述

  近最小0远最小0.01

  在这里插入图片描述

  Unity3D之NGUI基础2:使用NGUI

  NGUI的按钮 等于 Sprite + UIButton + Play Sound + 2D触发器(看相机是2D还是3D,系统自动切)

  触发器大小默认为0,没调

  用attackh自动铺张

  unity3d 2018.3.10f1不能使用GUI图层

  在这里插入图片描述

  场景中人物板从x610到x250

  NGUI只显示了1/3,只有x610到x-770效果才一样

  看别的视频,unity单位是米,但这里单位是像素

  上面的距离是360,1380,也就是1米 == 2像素 ?

  在这里插入图片描述

  对比了很多下,删掉新建最方便

  在unity中使用UICamera.hoveredObject==null后游戏点击地面无反应和鼠标点击穿透UI

  脚本挂NPC,我原想挂任务板,后面也该挂任务板

  图片,焦点,软硬件

  方法要被调用,不然…

  在这里插入图片描述

  在这里插入图片描述

  流程图

  在这里插入图片描述

数据文本

  1001,小瓶血药,icon-potion1,Potion,50,0,50,60

  1002,大瓶血药,icon-potion2,Potion100,0,70,100

  1003,蓝药,icon-potion3,Potion,100,60,80

  2001,黄金甲,armor0-icon,Equip,0,50,0,Armor,Swordman,150,200

  2002,铜甲,armor1-icon,Equip,0,39,0,Armor,Swordman,100,150

  2003,神迹魔法衣,armor2-icon,Equip,0,50,0,Armor,Magician,150,200

  2004,破旧魔法衣,armor3-icon,Equip,0,20,0,Armor,Magician,60,100

  2005,铜鞋,icon-boot0,Equip,0,0,50,Shoe,Common,60,100

  2006,神级红鞋,icon-boot0-01,Equip,0,0,70,Shoe,Common,120,150

  2007,帽子,icon-helm,Equip,0,50,0,Headgear,Swordman,100,120

  2008,神帽,icon-helm-01,Equip,0,70,0,Headgear,Swordman,120,200

  2009,神级魔法帽,icon-helm-02,Equip,0,70,0,Headgear,Magician,120,200

  2010,普通魔法帽,icon-helm-03,Equip,0,50,0,Headgear,Magician,100,120

  2011,黄金戒指,icon-ring,Equip,0,50,0,Accessory,Common,50,70

  2012,铜绿戒指,icon-ring-01,Equip,0,30,0,Accessory,Common,30,50

  2013,盾牌,icon-shield,Equip,0,50,0,LeftHand,Common,50,70

  2014,神盾,icon-shield1,Equip,0,70,0,LeftHand,Common,70,100

  2015,皇族项链,icon-tailman,Equip,0,30,0,Accessory,Common,30,60

  2016,火柴棍,rod-icon,Equip,40,0,0,RightHand,Magician,40,80

  2017,金属棍,rod-icon02,Equip,60,0,0,RightHand,Magician,60,120

  2018,神级魔法棒,rod-icon03,Equip,80,0,0,RightHand,Magician,80,200

  2019,御剑,sword0-icon,Equip,40,0,0,RightHand,Swordman,40,60

  2020,双手剑,sword0-icon00,Equip,60,0,0,RightHand,Swordman,60,100

  2021,白帝圣剑,sword1-icon,Equip,80,0,0,RightHand,Swordman,80,150

  2022,华夏第一剑,sword2-icon,Equip,100,0,0,RightHand,Swordman,150,200

(代码)模型类

  没有MonoBehaviour,后面子类不能在编辑器内显示

  (代码)TextAsset转化为List

  两个方法的作用分别是

  1、读TextAsset,写入Dictionary

  2、读取Dictionary,返回一个上述模型类的一个对象

  流程图

  ItemGroup就是一群,一堆Item的意思,多了数量的属性;

  之前想用Bag_Item,但商店里面的也是一样的属性

  实例的预制体是ItemGroup,继承于Item,Item的using… Start Update方法不能删除,否则它和子类都不能挂在(还是显示)在编辑器中

  在这里插入图片描述

  在这里插入图片描述

(问题)首位多次生成

  之前记录的NGUI的有问题,就是拖拽最前面的有时(常常会生成物品)

  因为是点击生成物品。拖第一个时形成空位,所以就生成物品在首位

  (代码)取数据,挂在BagPannel下

  将字典的每一项item传给ItemGroup

  (代码)ItemGroup

  根据Item取值和UI显示,隐约觉得继承类可以用,但还没学到

  继承Item的话会被Monobehavior排斥,导致无法在编辑器中使用添加。

  所以还是将Item当成组件

  (做到了),就是基类Item的using, start,update不能省略,不让没法拖到对象上

  看到ScriptableObject,介绍单一的(视频是拖出一个,填值),暂时没学到它的价值

  (代码)拖拽组件

  重写了UIDragAndDrop,加在物品上。

  格子标签是Grid,物品预制体的标签是Good

  (代码)增加物品,挂在BagPannel下

  背包的总节点吧,方便做预制体

  做鼠标悬浮的显示隐藏

  over,out分别拖入显示隐藏信息提示框的方法

  在这里插入图片描述

  支持中文的字体

  在这里插入图片描述

  现在只靠拖出来改,再拖回去

  The root GameObject of the opened Prefab has been moved out of the Prefab …

  在这里插入图片描述

  在这里插入图片描述

  在这里插入图片描述

  unity–为什么Inspector视图中脚本前面的勾选框没了

  将一个父类方法的名字修改后,出现了TweenPosition丢失

  背景是将 状态按钮 触发 父节点的方法 去调用 状态栏的父类方法ShowWindow

  现尝试将 状态按钮 触发 父节点的方法 去调用 状态栏的父类方法ShowWindow,可以达到效果

  所以问题在父节点的方法

  在这里插入图片描述

  视频是通过点击背包里面的装备来穿戴

  想到,UI上

  01 临时的Bag在左边,装备栏在右边,方便拖拽添加装备

  02 界面不够显示两个面板,所以是,显示一个,隐藏一个,通过双击(右键)

  01、打开装备栏点击部位,隐藏装备栏,弹出背包栏,显示玩家职业类型,该部位类型的人装备,再点击装备,实现穿戴或02、者替换,玩家属性的加减

  打开背包,弹出背包栏,显示玩家职业类型,该部位类型的人装备,再点击装备,实现穿戴或者替换,玩家属性的加减

  03、实现背包里面的数据和显示分离,方便显示可以装备的装备。存储的是

  想到比Item就多了count属性,Group一群一堆。

  框是做预制体用到的UI显示

  在这里插入图片描述

  在这里插入图片描述

  背景是,在装备栏的部位槽点击进入背包,想背包显示的是该职业该部位属于装备的物品

  想到,数据归一档,这个数据可以是所有类型的的物品表,装备类的表,药品类的表,装备老板的商品表,药品老板的商品表。

(代码)原来的

  对应的,加减数量也需要更新背包,所以冗余了

  (代码)现在的,将显示部分拆出来复用

  (问题) 在第一个格子死循环增加第一个随机出来的item

  实例的代码在Display方法里面,Display裸露在Update,而不是在鼠标左键条件下。

  也没有销毁之前的

  再次Display,没有clear以前的对象列表

  物品预制体写方法传参id给BagPannel,被双击动作调用

  在这里插入图片描述

脱下

  玩家双击EquipItem,向 装备栏 传递 穿戴类型

  在这里插入图片描述

装备栏根据穿戴类型,销毁对应部位上的装备,回滚(加加或新增)装备到背包

  (问题) InvalidOperationException: Collection was modified; enumeration operation may not execute.

  枚举列表时修改了列表

(问题) 文本提示框错误

  给本体赋值,而不是给一个接收本体的对象赋值。错误文本框显示的是预制体填的值

  在这里插入图片描述

  拖个ttf的字体到unity,弹出这个很卡很久

  在这里插入图片描述

Unity RPG 黑暗之光 问题记录 上 (1-63 地形场景 角色选择 行走 相机跟随、旋转、缩放 任务系统 面板栏 背包系统 状态系统)

Unity RPG 黑暗之光 问题记录 上 (1-63 地形场景 角色选择 行走 相机跟随、旋转、缩放 任务系统 面板栏 背包系统 状态系统)

评论留言

我要留言

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。