public virtual void Fire(UBattleUnit startUnit, Vector3 endPosition, float duration, string easeName = null) { this.BindGameLoop(); _transStart = startUnit.GetBoneTransform("missile"); _startUnit = startUnit; _startUnitId = startUnit.unitId; _startPosition = _transStart.position; _startAngle = _startUnit.curDirectionAngle; _transEnd = null; _endUnit = null; _endUnitId = 0; _endPosition = endPosition; _endTeleportFlag = -1; _duration = duration <= 0 ? _duration : duration; _startTime = GetMSTime(); _easeName = string.IsNullOrEmpty(easeName) ? _easeName : easeName; _easeFunc = EaseFunc.GetFunction(easeName); _transform = this.transform; _transform.position = _startPosition; _isEnded = false; _delayTimeCounter = _delayTime; this.OnEffectStart(); }
public virtual void Fire(GameObject objStart, Vector3 endPosition, float duration, string easeName = null) { this.BindGameLoop(); _transStart = objStart.transform; _startUnit = null; _startUnitId = 0; _startPosition = _transStart.position; _startAngle = -1.0f; _transEnd = null; _endUnit = null; _endUnitId = 0; _endPosition = endPosition; _endTeleportFlag = -1; _duration = duration <= 0 ? _duration : duration; _startTime = GetMSTime(); _easeName = string.IsNullOrEmpty(easeName) ? _easeName : easeName; _easeFunc = EaseFunc.GetFunction(easeName); _transform = this.transform; _transform.position = _startPosition; _isEnded = false; _delayTimeCounter = _delayTime; this.OnEffectStart(); }
public void Fire(int index, UBattleUnit uUnit, string eventName) { _uTowerBase?.Fire(index); if (_autoRotateSpineList.Count == 0) { FireUnitEvent(eventName); return; } var startPos = GetBonePosition("center"); var endPos = uUnit.GetBonePosition("body"); var angle = UGameTools.GetPosAngle(startPos, endPos); for (int i = 0; i < _autoRotateSpineList.Count; i++) { var spine = _autoRotateSpineList[i]; spine.UpdateDirectionByAngle(angle); if (i == 0) { _curDirectionAngle = spine.GetCurDirectionAngle(); if (_boneMissile != null) { _boneMissile.position = spine.GetBulletWorldPosition(); } } } FireUnitEvent(eventName); }
public static int ComparePosition(UBattleUnit leftUnit, UBattleUnit rightUnit) { var result = -leftUnit._logicPosition.CompareTo(rightUnit._logicPosition); if (result != 0) { return(result); } return(leftUnit.unitId.CompareTo(rightUnit.unitId)); }
public void RemoveSortUnit(UBattleUnit unit) { for (int i = 0; i < _sortUnitList.Count; i++) { if (unit.unitId == _sortUnitList[i].unitId) { _sortUnitList.RemoveAt(i); break; } } }
public void ShowDamage(UBattleUnit unit, int damage, int prefabNameId, int prefabFolderId, int boneNameId) { var prefabName = GameStrings.Get(prefabNameId); var prefabFolder = GameStrings.Get(prefabFolderId); var uDamage = damagePool.RequestComponent <UBattleDamage>(prefabName, prefabFolder, true, this.objTopCanvas.transform); if (uDamage == null) { return; } using (zstring.Block()) { uDamage.txtDamage.text = zstring.Format("{0}", damage).Intern(); } var boneName = GameStrings.Get(boneNameId); boneName = string.IsNullOrEmpty(boneName) ? "head" : boneName; uDamage.transform.position = unit.GetBonePosition(boneName); }
public bool FireMissile(UBattleUnit uOwnerUnit, float pendingTime) { if (_effectContainer == null || uOwnerUnit == null || pendingTime <= 0) { return(false); } _effectContainer.Request(); if (_effectContainer.poolObjectList.Count == 0) { return(false); } var objMissile = _effectContainer.poolObjectList[0]; var missileEffect = objMissile?.GetComponent <UBattleEffect>(); if (missileEffect == null) { return(false); } missileEffect.Fire(uOwnerUnit, _effectContainer.transform.position, pendingTime, null); return(true); }
public void Play(UBattleUnit battleUnit) { this.BindGameLoop(loop); _startUnit = battleUnit; _endUnit = battleUnit; _endTeleportFlag = _endUnit.teleportFlag; _transform = this.transform; var position = battleUnit.GetBonePosition(_targetBoneName); position.z = _transform.position.z; _transform.position = position; if (_followTargetScale) { _transform.localScale = battleUnit.transform.localScale; } _isEnded = false; _delayTimeCounter = _delayTime; this.OnEffectStart(); }
private static int Init(UBattleCollider uCollider, Transform transParent, int unitId, float posX, float posY, float zFactor, int direction, float logicPosition, UBattleUnit uOwnerUnit, float pendingTime) { uCollider = LUBattleUnit.Init(uCollider, unitId, false); if (uCollider == null) { return(0); } uCollider.transform.SetParent(transParent, false); uCollider.SetPosition(posX, posY, zFactor, direction, logicPosition); if (!uCollider.FireMissile(uOwnerUnit, pendingTime)) { uCollider.Begin(); } return(unitId); }
public void AddSortUnit(UBattleUnit unit) { _sortUnitList.Add(unit); }