泰斗破坏神开发笔记

在学习siki老师的泰斗破坏神的时候记下了很多笔记,这里贴出我所学习到的小的知识点

 

1.Grid Layout Group 配合 Content Size Fitter 可以自适应加载Grid面板(动态加载)

2.左右滑动一个三维物体需要对物体添加一个胶囊碰撞器,用OnButtonDrag();

3.角色选择面板的切换,可以创建一个目标点,调整好位置和角度,然后将选择的角色实例化生成,然后将生成的角色设置为目标点的子物体,再将角色的位置和角度置为0

4.使用DoTween的transform.DoScale(new vector3(0,0,0),0.4f)实现在0.4秒的时间内,面板由原本大小缩小到坐标(0,0,0)点

5.使用transform.DoScale(1f,0.4f)实现在0.4秒的时间内,面板由坐标(0,0,0)放大到原本大小

6.用协程可以在动画播放完成后再将面板的 SetActive 设置为false

7.将暂时不需要用到的 gameObject 设置为 false 可以提高一些效率,但是内存还是占用的

8.保留 Slider 的 BG 和 Fill 可以制作类似经验条、进度条

9.计时器控制体力和历练自动增长

10.用委托和事件控制面板的更新

11.Edit/Project Settings/Script Execution Order设置脚本执行顺序,数值越大,越往后执行

12.开发一个功能,比如任务。第一步:定义一个类保存任务的信息(Id,Name,Description,Icon,Type,Reward…)第二步:定义一个类读取文本文件(xml,Json,txt…)第三步:创建一个类动态加载每一个任务(初始化任务面板)第四步:创建一个类对任务面板上的控件进行赋值(显示任务信息)(name,icon,type,reward…)

13.用简模做碰撞可以提高性能

14.简模的创建放在一个空的GameObject下

15.将Model设置为Mobile/Unlit可以使一个三维的Model变亮(在5.6.1版本)

16.NavMeshAgent自动寻路的时候如果移动过程中动画不正常播放,修改BaseOffset(与地面当位置偏移

17.当在Start()初始化存在先后顺序的时候,可以用Get方法获得

18.将Input里面的Horizontal和Vertical的Gravity(重力)和Sensitivity(灵敏度)设置为1000,可以使奔跑和Idle动画之间切换更协调

19.如果遇到类似不同的图标点击设计(如背包的物品,技能的图标),就在物品或者技能上的图标上单独挂一个脚本,控制他们的显示

20.用AsyncOperation(异步)显示场景的加载

21.Find比较耗时,能不用就不用,可以用单例模式查找,然后调用单例模式

22.遇到一个坑,使用Animator状态机控制动画的时候,如果用Trigger控制(比如三段普通攻击)需要将每段的攻击动画都要完整的播放完成在切换至空的状态,否则会出现动画不播放的情况

23.在脚本的编写过程,如果一个脚本需要调用另一个,两个都使用Awake()控制初始化的话会出现空指针的情况,将调用者的Awake()换成Start();

24.遇(wo)到(shi)的(sha)坑(bi),在做动画事件的时候,在Animator中,并没有将该段动画播放,所以导致事件不被调用,纠结了一天

25.在List或者数组中,当这个数据不存在的时候,需要将这个数据remove掉,否则在需要判断这个数据会导致直接return掉

26.把摄像机的跟随写在FixedUpdate()里面可以减少人物的抖动

27. 使用RenderTexture制作动态头像和小地图

28. 鼠标点击地面移动可以使用EventSystem.current.IsPointOverGameObject()==false来防止点击UI穿透

29.客户端+服务器端+MySQL数据库学习:

服务器端基础架构:

服务器端启动类:TaidouApplication继承ApplicationBase,实现接口

服务器端与客户端通信:ClientPeer继承PeerBase,实现接口

TaidouApplication与ClientPeer通过实现的接口CreatePeer方法建立连接

创建OperationCode类来区分发送什么请求或者是接收到了什么请求

通过Dictionary parameters 来获得或者添加发生信息

创建不同的请求类(Handler)继承HandlerBase,HandlerBase实现抽象方法OnHandlerMessag(OperationRequest operationRequest)

不同的请求类需要在TaidouApplicationg中进行添加

需要在ClienPeer的OnOperationRequest方法中调用HandlerBase的OnHandlerMessag(operationRequest)方法

创建不同的数据类对应数据库数据

创建数据库管理类用来像数据库查询或者添加数据

创建数据库映射类用来将数据类和数据库的数据建立连接

客户端基础架构:

创建PhotonEngine继承IPhotonPeerListener挂在空物体上,实现抽象方法,设置脚本DontDestoryOnLoad,通过这个脚本进行与服务器端的连接,并创建SendRequest方法,向服务器端发送请求

在PhotonEngine里面对每个controller类都添加字典Dictionary controllers里面

创建ControllerBase类,实现注册,注销的方法,并且创建用来接收服务器端信息的抽象方法OnOperationResponse(OperationResponse operationResponse);

在PhotonEngine脚本里面的抽象方法OnOperationResponse里面接受服务器端发来的消息里取出controller,从而调用对应controller里面的OnOperationResponse方法

创建不用的Controller继承ControllerBase用来管理不同的客户端请求

客户端的Controller类对应的是服务器端的Handler类

你可能感兴趣的:(斜月冷照寒冰凉席,unity)