修复攻击动画bug,更新AI播放动画相关行为和镜头控制
This commit is contained in:
parent
5521af6313
commit
723429983c
@ -19,7 +19,7 @@ MonoBehaviour:
|
|||||||
AttackBounceWaitAnimTime: 0.05
|
AttackBounceWaitAnimTime: 0.05
|
||||||
CounterAnimTime: 0.15
|
CounterAnimTime: 0.15
|
||||||
CounterReturnAnimTime: 0.15
|
CounterReturnAnimTime: 0.15
|
||||||
BetweenAttackCounterAnimTime: 0.15
|
BetweenAttackCounterAnimTime: 0.2
|
||||||
MoveAnimTime: 0.15
|
MoveAnimTime: 0.15
|
||||||
ExplorerMoveDelay: 0.15
|
ExplorerMoveDelay: 0.15
|
||||||
ProjectileMoveTime: 0.3
|
ProjectileMoveTime: 0.3
|
||||||
|
|||||||
@ -19,7 +19,7 @@ MonoBehaviour:
|
|||||||
AttackBounceWaitAnimTime: 0.05
|
AttackBounceWaitAnimTime: 0.05
|
||||||
CounterAnimTime: 0.15
|
CounterAnimTime: 0.15
|
||||||
CounterReturnAnimTime: 0.15
|
CounterReturnAnimTime: 0.15
|
||||||
BetweenAttackCounterAnimTime: 0.15
|
BetweenAttackCounterAnimTime: 0.2
|
||||||
MoveAnimTime: 0.15
|
MoveAnimTime: 0.15
|
||||||
ExplorerMoveDelay: 0.15
|
ExplorerMoveDelay: 0.15
|
||||||
ProjectileMoveTime: 0.3
|
ProjectileMoveTime: 0.3
|
||||||
|
|||||||
@ -78161,6 +78161,7 @@ MonoBehaviour:
|
|||||||
maxX: 150
|
maxX: 150
|
||||||
minY: -10
|
minY: -10
|
||||||
maxY: 170
|
maxY: 170
|
||||||
|
moveSpeed: 5
|
||||||
--- !u!1 &520790903
|
--- !u!1 &520790903
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -107871,10 +107872,10 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 4c0a91e9c554c694791fbd5691165798, type: 3}
|
m_Script: {fileID: 11500000, guid: 4c0a91e9c554c694791fbd5691165798, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
NoAI: 0
|
NoAI: 1
|
||||||
FullSight: 1
|
FullSight: 1
|
||||||
AIActionTime: 0.5
|
AIActionTime: 0.5
|
||||||
AIAllTech: 1
|
AIAllTech: 0
|
||||||
AIMoreMoney: 0
|
AIMoreMoney: 0
|
||||||
LandThreshold: 0.3
|
LandThreshold: 0.3
|
||||||
AnimationSpeed: 1
|
AnimationSpeed: 1
|
||||||
|
|||||||
@ -170,7 +170,6 @@ namespace RuntimeData
|
|||||||
|
|
||||||
//Attack信息的RenderMakr
|
//Attack信息的RenderMakr
|
||||||
public bool AttackRenderMark;
|
public bool AttackRenderMark;
|
||||||
public float AttackRenderMarkWaitTime;
|
|
||||||
public Vector3 AttackRenderMarkTargetPos;
|
public Vector3 AttackRenderMarkTargetPos;
|
||||||
public bool AttackRenderMarkNeedBack;
|
public bool AttackRenderMarkNeedBack;
|
||||||
public AttackAnimType AttackRenderMarkAttackAnimType;
|
public AttackAnimType AttackRenderMarkAttackAnimType;
|
||||||
|
|||||||
@ -196,7 +196,6 @@ namespace Logic
|
|||||||
1 => AttackAnimType.Melee, 2 => AttackAnimType.Arrow, 3 => AttackAnimType.Bomb,
|
1 => AttackAnimType.Melee, 2 => AttackAnimType.Arrow, 3 => AttackAnimType.Bomb,
|
||||||
_ => AttackAnimType.None
|
_ => AttackAnimType.None
|
||||||
};
|
};
|
||||||
unit1.AttackRenderMarkWaitTime = 0f;
|
|
||||||
unit1.AttackRenderMarkTargetPos = Table.Instance.GridToWorld(grid2,"isUnit");
|
unit1.AttackRenderMarkTargetPos = Table.Instance.GridToWorld(grid2,"isUnit");
|
||||||
unit1.AttackRenderMarkNeedBack = true;
|
unit1.AttackRenderMarkNeedBack = true;
|
||||||
|
|
||||||
@ -338,17 +337,23 @@ namespace Logic
|
|||||||
Table.Instance.AnimDataAssets.AttackAnimTime);
|
Table.Instance.AnimDataAssets.AttackAnimTime);
|
||||||
|
|
||||||
//处理反击情况,设置unit2的rendermark
|
//处理反击情况,设置unit2的rendermark
|
||||||
unit2.AttackRenderMark = canCounter;
|
|
||||||
if (canCounter)
|
if (canCounter)
|
||||||
{
|
{
|
||||||
unit2.AttackRenderMarkWaitTime = counterAttackStart;
|
//unit2.AttackRenderMarkWaitTime = counterAttackStart;
|
||||||
unit2.AttackRenderMarkAttackAnimType = unit2.GetAttackRange() switch
|
Timer.Instance.TimerRegister(unit2, () =>
|
||||||
{
|
{
|
||||||
1 => AttackAnimType.Melee, 2 => AttackAnimType.Arrow, 3 => AttackAnimType.Bomb,
|
unit2.AttackRenderMark = canCounter;
|
||||||
_ => AttackAnimType.None
|
unit2.AttackRenderMarkAttackAnimType = unit2.GetAttackRange() switch
|
||||||
};
|
{
|
||||||
unit2.AttackRenderMarkTargetPos = Table.Instance.GridToWorld(grid1,"isUnit");
|
1 => AttackAnimType.Melee, 2 => AttackAnimType.Arrow, 3 => AttackAnimType.Bomb,
|
||||||
unit2.AttackRenderMarkNeedBack = true;
|
_ => AttackAnimType.None
|
||||||
|
};
|
||||||
|
unit2.AttackRenderMarkTargetPos = Table.Instance.GridToWorld(grid1,"isUnit");
|
||||||
|
unit2.AttackRenderMarkNeedBack = true;
|
||||||
|
},
|
||||||
|
counterAttackStart);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//如果会被反击至死
|
//如果会被反击至死
|
||||||
if (dmg2 >= unit1.Health)
|
if (dmg2 >= unit1.Health)
|
||||||
|
|||||||
@ -85,7 +85,7 @@ namespace TH1Renderer
|
|||||||
{
|
{
|
||||||
MainEditor.Instance.GetCityStrategy(_cityId, out var cst);
|
MainEditor.Instance.GetCityStrategy(_cityId, out var cst);
|
||||||
MainEditor.Instance.GetPlayerStrategy(_playerData.Id, out var pst);
|
MainEditor.Instance.GetPlayerStrategy(_playerData.Id, out var pst);
|
||||||
_debugText.text += $"CST={cst} PST={pst}";
|
_debugText.text += $"CST={cst} PST={pst}\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
//如果是首都,展示科技
|
//如果是首都,展示科技
|
||||||
|
|||||||
@ -432,8 +432,10 @@ namespace TH1Renderer
|
|||||||
$"ArtResources/TH1Buildings/TH1Buildings{forcesName}/{civName}/{forcesName}_{civName}_House_{z + 1}");
|
$"ArtResources/TH1Buildings/TH1Buildings{forcesName}/{civName}/{forcesName}_{civName}_House_{z + 1}");
|
||||||
house.transform.parent = _cityBuilding.transform;
|
house.transform.parent = _cityBuilding.transform;
|
||||||
Vector3 tpos = _ROGrid.transform.position;
|
Vector3 tpos = _ROGrid.transform.position;
|
||||||
|
//每层的层高
|
||||||
|
float levelHeight = 1.2f;
|
||||||
tpos = new Vector3(tpos.x + 1.22f * (x - y),
|
tpos = new Vector3(tpos.x + 1.22f * (x - y),
|
||||||
tpos.y + 0.7f * (x + y) + z * 1.6f - 8.32f + 0.7f * (4 - houseEdge),
|
tpos.y + 0.7f * (x + y) + z * levelHeight - 7.5f + 0.7f * (4 - houseEdge),
|
||||||
tpos.z + 0.9f - (30 + z - x - y) * 0.001f);
|
tpos.z + 0.9f - (30 + z - x - y) * 0.001f);
|
||||||
house.transform.position = tpos;
|
house.transform.position = tpos;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -62,7 +62,6 @@ namespace TH1Renderer
|
|||||||
private bool _isAttackBack = false;
|
private bool _isAttackBack = false;
|
||||||
private bool _isAttackArrow = false;
|
private bool _isAttackArrow = false;
|
||||||
private bool _isAttackBomb = false;
|
private bool _isAttackBomb = false;
|
||||||
private float _needWaitTime = 0f;
|
|
||||||
private Vector3 _attackTargetPos, _attackBackPos;
|
private Vector3 _attackTargetPos, _attackBackPos;
|
||||||
private bool _needBack;
|
private bool _needBack;
|
||||||
private float _attackGoFullTime = 0.15f;
|
private float _attackGoFullTime = 0.15f;
|
||||||
@ -216,7 +215,7 @@ namespace TH1Renderer
|
|||||||
else if (_unitData.AttackRenderMark)
|
else if (_unitData.AttackRenderMark)
|
||||||
{
|
{
|
||||||
_unitData.AttackRenderMark = false;
|
_unitData.AttackRenderMark = false;
|
||||||
SetAttackAnim(_unitData.AttackRenderMarkAttackAnimType,_unitData.AttackRenderMarkTargetPos,_unitData.AttackRenderMarkNeedBack,_unitData.AttackRenderMarkWaitTime);
|
SetAttackAnim(_unitData.AttackRenderMarkAttackAnimType,_unitData.AttackRenderMarkTargetPos,_unitData.AttackRenderMarkNeedBack);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -246,12 +245,9 @@ namespace TH1Renderer
|
|||||||
else
|
else
|
||||||
if (_needAttack)
|
if (_needAttack)
|
||||||
{
|
{
|
||||||
if (_needWaitTime > 0)
|
|
||||||
{
|
|
||||||
_needWaitTime -= Time.deltaTime;
|
|
||||||
}
|
|
||||||
//如果处在攻击对方状态
|
//如果处在攻击对方状态
|
||||||
else if (_isAttackGo)
|
if (_isAttackGo)
|
||||||
{
|
{
|
||||||
_attackTime += Time.deltaTime / _attackGoFullTime;
|
_attackTime += Time.deltaTime / _attackGoFullTime;
|
||||||
if(_needBack)
|
if(_needBack)
|
||||||
@ -582,7 +578,7 @@ namespace TH1Renderer
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetAttackAnim(AttackAnimType attackAnimType, Vector3 targetPos,bool needBack = true, float needWaitTime = 0f)
|
public void SetAttackAnim(AttackAnimType attackAnimType, Vector3 targetPos,bool needBack = true)
|
||||||
{
|
{
|
||||||
//如果有其他动画还没播放完,先复位
|
//如果有其他动画还没播放完,先复位
|
||||||
if (_needAttack)
|
if (_needAttack)
|
||||||
@ -610,19 +606,16 @@ namespace TH1Renderer
|
|||||||
{
|
{
|
||||||
_isAttackGo = true;
|
_isAttackGo = true;
|
||||||
_isAttackBack = false;
|
_isAttackBack = false;
|
||||||
_needWaitTime = needWaitTime;
|
|
||||||
}
|
}
|
||||||
else if (attackAnimType == AttackAnimType.Arrow)
|
else if (attackAnimType == AttackAnimType.Arrow)
|
||||||
{
|
{
|
||||||
_isAttackArrow = true;
|
_isAttackArrow = true;
|
||||||
_isAttackBack = false;
|
_isAttackBack = false;
|
||||||
_needWaitTime = needWaitTime;
|
|
||||||
}
|
}
|
||||||
else if (attackAnimType == AttackAnimType.Bomb)
|
else if (attackAnimType == AttackAnimType.Bomb)
|
||||||
{
|
{
|
||||||
_isAttackBomb = true;
|
_isAttackBomb = true;
|
||||||
_isAttackBack = false;
|
_isAttackBack = false;
|
||||||
_needWaitTime = needWaitTime;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_attackTargetPos = targetPos;
|
_attackTargetPos = targetPos;
|
||||||
|
|||||||
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user