未解决
Loadpath+resourcePath
未解决
Loadpath+resourcePath
未解决
对象池问题,Containskey
对象池字典需要加深理解。
只有游戏物体才有对象池一说
其他音频等资源是没有对象池的。
xxx.pop怎么来的?
对象池问题未解决
为什么monsterpool.Count<=0来判断,因为可能存在多个项目
关于状态机的Private是否有必要,后续再复习。
上节HP问题
若定义一个父类来继承接口,子类继承父类,要同事显示子类和父类的方法的话。
可以在Start实例化中使用
Leblanc myHero=new Leblanc()
I/O
IHero myHero=new Leblanc()
意思就是需要使用子类对象来接受实例化的子类。
但是这样不方便。
另外解决方法。
使用重写方法。
父类改成Virtual void
子类改成override
这样便可以使用父类对象来接受了。
但是父类若定义了HP等数值,则需要以父类对象类接收,而不能以接口对象来接收
接口可以随时添加新方法,添加以后点实现接口即可
接口对拓展开放,对修改关闭。
接口只允许有方法,不允许有字段。如果添加血量,解决方法。可以添加一个基类,让后面的子类继承基类,具体如下
自己思考:适用于诸多平行功能
接口
接口名字都以I开头,以interface为关键字
比如
public interface IHero
建议把多个对象放在一个单例里面调用,这样不会使代码凌乱
单例模板的制作
//单例模板的制作
public abstract class SingletontestToOne<T> : MonoBehaviour
where T : MonoBehaviour
{
private static T _One;
public static T One
{
get
{
return _One;
}
}
private void Awake()
{
_One = this as T;
}
//可以得出结论,单例模板和名字无关,只要后续名字都一致即可。于上面是否制作过单例也无关。
}
单例模式
生成
饿汉式单例
private static SingleTon _instance;
(按照ctrl+r+e可以直接封装get set方法)
public static Singleton Instance
{
get
{
return_instance;
}
}
private void Awake()
{
_instance=this;
}
NPC说话解决方案
多做几个话,然后使用随机数,这样NPC可以随机说话
为何LastProportion=oneItemProportion*moveCount;
为何不是+=
已经解决,老师忘记加了
(int)(xxx)取整
UI的宽度=原来的宽度+(每一个单元格长度+间隙)*(单元格数量-1)
scrollRect.onValueChanged.AddListener(PrintValue);//添加监听者
//水平滚动位置为0到1,0代表左侧。可以做成翻书,图鉴等功能。需要等分测算距离。
scrollRect.horizontalNormalizedPosition = 1;
Scroll rect 从代码里拿到引用的话需要从Content 和Viewport里面拿
拿到ContentRectTransform 方法
先定义一个RectTransform对象,使得他等于ScrollRect.Content.
拿UI的属性,需要从.RECT里面拿
1:Scroll Rect
MoveMent Type:滑动模式,Elastic一般作用于商店和背包