学习笔记
感受设计演变过程中蕴含的大智慧,
体会乐于怒的程序人生中值得回味的一幕幕。
设计模式来自于建筑领域,作为软件工程的一个分支,是在软件工程实践过程中,程序员们总结出的良好的编程方法。
第一种模式
简单工厂模式
上面是简单工厂的UML图
我简单介绍一下
首先是一个主类,下面有3个子类(可以是多个)继承它
每个子类都是一个方法,都独自封装成类
把它们的共性写入基类(也就是父类)写成抽象或者写成虚函数的形式
第二种模式
策略模式
基本原则
所谓基本原则就是设计时要遵循的
原则,遵循这些原则可以让代码更加完美。
单一职责原则
就一个类而言,仅有一个引起它变化的原因。
开放-封闭原则
对于扩展是开放的,对于更改时封闭的, 类似一国两制,类似电脑加内存。
依赖倒转原则
抽象不应该依赖细节,细节应该依赖于抽象,要针对接口编程,不应该针对实现编程。(如过依赖实现编程,电脑内存就要具体到某个品牌的主板,那么换电脑内存就需要换主板,这就尴尬了)。高层模块不应该依赖底层模块,两个都应该依赖抽象。
里氏代换原则
子类可以扩展父类的功能,但不能改变父类原有的功能。
Unity基础
认识脚本的基本三大区域
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ActorController : MonoBehaviour
{
//1.变量区 在这定义的public变量 可以在unity控制界面赋值
public Animator anim;
public string name;
public float hp;
public ActorData adata;
//2.一次性代码区 start
// Start is called before the first frame update
void Start()
{
}
//3.重复执行代码区 update(目标 每秒60次 60fps)
// Update is called once per frame
void Update()
{
}
}
变量区常用的语句
public enum STATE{//下拉框
IDLE,
PLAYERA,
PLAYERB,
FINISHED
}
[Header("== Parameters Settings ==")]//添加标题
[Range(0,10.0f)]//加完这个后,直接变滑杆
public float i = 0.1f;//后面必须加f不然分辨不出
[Header("== String Settings ==")]
[Space(10)]//距离空隙
public string name;
[Space(10)]
[Header("== ActorController Settings ==")]
public ActorController ac1;
public ActorController ac2;
[Space(10)]
[Header("== Game State ==")]
public STATE state;
写完上述代码,接下来是效果展示图
对人物的简单控制,首先得认识Animator 是什么?
Animator是Unity中动画控制器的组件,这东西相当于一个动画片段管理器。我们知道Unity中素材可以拖拽到游戏对象上,制作成称为Clip的动画片段,如果该对象没有Animator组件,那么也会同时创建Animator用来管理Clip的切换和触发等
如下图所示
不管是什么,只要形成规模,都需要管理人员,游戏也不例外。
GM就是游戏管理员
public ActorController ac1;
public ActorController ac2;
ActorController相当于是角色控制器
一级一级控制,传到Animator,最后作用到角色
InteractionManager交换管理器
两个角色互相攻击
通过对方的InteractionManager脚本
控制HP值的加减
ActorData角色数据
里面有定义角色的最大血量,攻击力等等