prefabs预制体文件夹的创建
拖动tear文件到prefabs中变成预制体
stone脚本挂在石像上
使用resource.Load<>加载预制体
a.先定义一个初始变量
private GameObject tearsGo;
b.加载资源
tearsGo = Resources.Load<GameObject>("Prefabs/Tear");
创建几个空游戏对象,作为tears的lu'dian
prefabs预制体文件夹的创建
拖动tear文件到prefabs中变成预制体
stone脚本挂在石像上
使用resource.Load<>加载预制体
a.先定义一个初始变量
private GameObject tearsGo;
b.加载资源
tearsGo = Resources.Load<GameObject>("Prefabs/Tear");
创建几个空游戏对象,作为tears的lu'dian
组件Trail Renderer 拖尾效果
材质的设置Materials选择一个材质
持续时间0.6
拖尾效果的修改,贝塞尔qu'xian(0.02-->0)
主要是讲了一下脚本的挂载
先定义一个路点sp1作为目标位置
1.寻找到目标物体sp1的位置,获取目标位置的位置
private Transform Trans;
Start(){
Trans = GameObject.Find("sp1").transform;
}
2.使用moveTowards方法当前移动物体
transform.position = Vector2.MoveToward(transform.posistion,Trans.posistion,移动速度);
当前位置,目标位置,移动速度
1.先创建animator和animation
2.在animator文件夹中创建animator controll,然后再需要播放动画的物体上挂载animator ,把刚刚创建的动画对象拖进controll
3.选中动画资源,然后ctrl全选,拖动到需要播放对象的物体身上。
4.把生成的anim动画文件放入animation文件下下
5.在动画面板观察动画顺序
6.设置显示的层级
7.在环境空物体中添加audio scorce背景音乐
1.面向对象七大设计原则?
1.开闭原则 2.单一职责 3.特米特法则原则
4.合成/聚合原则 5.依赖原则 6.里氏替换
7.接口隔离
2.面向对象三大特性
继承 封装 多态
3.为什么需要构造方法
使用tab.Get<object,object>(item); 进行遍历
完成代码如下:
var tab = MainLuaEnv.luaEnv.Global.Get<LuaTable>("Person");
foreach (var item in tab.GetKeys())
{
print("通过luatable的方式访问lua:" + item+"----"+ tab.Get<object,object>(item));
}
加了 [CSharpCallLua]特性 还是报错的话
将interface设置成public,然后回到unity界面,上方以此点击
Clear Generated Code=>
Generate Code
再次运行就不会报错了
class类中定义的名字要和lua中table表的名字一致
C#要关闭NoDelay
这节课贼绕
1..接收信息的时候先更新writeIndex指针,写入到length的位置,length包含2个长度的头,也就是
|A|A|1|2|3|4| | | |
writeIndex = 6 指向的值为4
2.处理接收到的信息的时候更新readIndex
|A|A|1|2|3|4| | | |
首先readIndex += 2 先指向body内容处
然后再 readIndex += bodyLength
readIndex = 6 指向的值为4
使用character controller 没有重力效果,只能模拟重力
有条件的情况下可以不用勾选has edit time,没有的话需要勾选
1.课程与项目介绍
2.游戏整体框架梳理与UML图制作
3.UIPanel的制作与UI细节功能的学习与实现
4.常用设计模式的学习与在项目中的应用
5.UIPanel功能的实现
6.编图功能的制作与怪物的功能实现
7.游戏住逻辑与功能的实现
8.游戏的完善与怪物窝的制作
这里的缓动变黑可以用DOTWeen的 DOTween.To
private CanvasGroup fadeCanvaseGroup;
private bool isFade;
private void Start()
{
fadeCanvaseGroup = FindObjectOfType();
Fade(1);
}
private void Fade(float alpha)
{
isFade = true; DOTween.To(() => fadeCanvaseGroup.alpha, a => fadeCanvaseGroup.alpha = a, alpha, 10);
}
定时销毁可以不用协程
Destroy(gameObject, timer);
timer就是时间
放在Start即可
不是很懂
重写动画控制器。
1.当动画控制器逻辑相同,但动画片段不同时,可以使用重写动画控制器。
2.动画片段循环播放及镜像的使用。