Unity - A计划(永久有效期) 扫二维码继续学习 二维码时效为半小时

(196评价)
价格: 4019.00元

下面有个根据已有的任务创建新任务的选项

[展开全文]
CobCannon · 2021-06-22 · 0

单个数值的变化,用委托的方式更加合适。比如,金币,分数,等级等。

颗粒度较大的用事件比较合适。比如从服务器拉取了一个任务列表数据,任务数据列表存到了model,此时model的任务列表发生了变更,这个时候向view发送事件

Model和View是自底向上的关系

[展开全文]
464849494 · 2021-06-22 · 1

很神奇,Application.dataPath + "/../Version"最后还要加个斜杠才能正确打开目标目录

[展开全文]
CobCannon · 2021-06-18 · 0

直接看代码效率还高些,听老师讲太犯困了,没有图示啥的就不停地敲代码

[展开全文]
CobCannon · 2021-06-14 · 1

缺乏一个判定值会导致报错但不会有影响。

应该在判断X跟Y在正常范围值那段里再加上判断i与j是否在正常范围值,要不然在边缘的数字元素上按下鼠标中键会提示错误。

[展开全文]
PigKing · 2021-06-12 · 0

实在没理解啊,好难

[展开全文]
花花丶 · 2021-06-11 · 0

交互逻辑:View->Model

表现逻辑:Model->View

[展开全文]
464849494 · 2021-06-09 · 0

子节点通知父节点用委托或者事件

父节点调用子节点可以直接方法调用

跨模块通信 用事件

耦合就是双向引用或者循环引用

静态类不能继承

[展开全文]
464849494 · 2021-06-09 · 0

protobuf  把对象转换成数据,数据来做传输

可以用于客户端和服务端数据传输。

 

 

 

 

[展开全文]
464849494 · 2021-06-09 · 0

加个目标类型的枚举好理解一些

[展开全文]
CobCannon · 2021-06-07 · 0

敌人攻击掉血方法:

1、看向目标

2、如果敌人血量下降少于0,则调用角色死亡方法

[展开全文]
spec90 · 2021-06-06 · 0

1、默认持续生成新的敌人:在Start中调用InvokeRepeating方法

2、在Update中检查敌人数量是否达到上限:

如果isSpawning为true,且敌人数量达到上限,达到则CancelInvoke(); 并将isSpawning= false;

 

 

[展开全文]
spec90 · 2021-06-06 · 0

随机生成敌人,并赋值位置

生成特效并生成位置

[展开全文]
spec90 · 2021-06-06 · 0

1、攻击方法优化:目标移动追赶判定,意思是攻击过程中目标位置可能再次移动超出角色攻击范围,需要停止攻击并重启导航方法

如果攻击目标不为建筑,判断currentTarget是否为空。如果不为空,则将目标位置设置为当前目标位置。

- 如果目标位置和角色位置距离大于攻击距离,重启导航系统,meshAgent. isStopped = false,停止攻击动画。

如果目标超出跟踪范围(约为攻击范围2倍),则目标丢失,重置状态ResetState

- 如果在攻击范围内,持续攻击

 

[展开全文]
spec90 · 2021-06-06 · 0

1、补充寻找目标的方法

如果目标不是角色,也不是塔,则默认设置目标为塔。

如果目标不是角色,但是是塔,则同时搜索附近的角色,如果有则将目标更新为角色

 

如果目标是角色:

判断目标是否为空(安全校验),如果不为空,将目标赋值为Target位置。

如果目标不存在,否则判定目标已死,重置状态。

[展开全文]
spec90 · 2021-06-06 · 0

1、搜索敌人方法

在GameManager中创建所有敌人的列表List<Character> playerCharacters和List<Enemy> enemyCharacters的列表

 

GameManager中创建Character时,同时将角色添加到列表:

playerCharacters.Add(go.GetComponent<Character>());

 

遍历角色,看是否在攻击范围之内

Vector3.Distance()

 

[展开全文]
spec90 · 2021-06-06 · 0

1、测试移动和攻击塔功能是否正常

2、攻击方法实现:

GameManager.Instance.DecreasePlayerHP(damage);

 

[展开全文]
spec90 · 2021-06-06 · 0

1、移动状态和攻击状态切换

距离判断:Vector3.Distance(transform.position, target.transition.position)

停止移动导航:meshNav.enabled = false

状态切换:Animator.SetBool("Attacking",true)

2、Target 切换

如果角色是敌人,则默认目标是玩家的塔

如果角色是玩家,则默认目标是敌人的塔

[展开全文]
spec90 · 2021-06-06 · 0

1、把角色的自动寻路组件设置为默认不开启。当角色生成并设置到正确的位置后再启用

在OnEnable方法中调用Invoke(NavMesh.Enabled,0.001f)

[展开全文]
spec90 · 2021-06-06 · 0

1、给Ground添加AI-navimesh组件,选择Agent height, 点击bake

2、调整角色高度,确保能应用到导航

[展开全文]
spec90 · 2021-06-06 · 0