public void CreateBullet(LVector2 pos, EDir dir, int type, IEntity pEntity) { var owner = pEntity as GameEntity; var createPos = pos + DirUtil.GetDirLVec(dir) * TankUtil.TANK_HALF_LEN; var entity = CreateUnit(createPos, _gameConfigService.bulletPrefabs, type, dir); entity.bullet.ownerLocalId = owner.localId.value; entity.unit.camp = owner.unit.camp; }
private void Update() { if (_entity == null) { return; } transform.localPosition = _entity.pos.value.ToVector3(); var deg = DirUtil.GetDirDeg(_entity.dir.value); transform.localRotation = Quaternion.Euler(0, 0, deg); }
public void CreateBullet(LVector2 pos, EDir dir, ushort type, IEntity pEntity) { var owner = pEntity as GameEntity; var createPos = pos + DirUtil.GetDirLVec(dir) * TankUtil.TANK_HALF_LEN; var entity = CreateUnit(createPos, EntityUtil.CreateEntityBullet(_gameContext, type), dir); entity.bullet.ownerLocalId = owner.entityId.value; entity.unit.camp = owner.unit.camp; entity.collider.radius = new LFloat(null, 300); entity.collider.size = LVector2.zero; }
public bool HasColliderWithBorder(EDir dir, LVector2 fTargetHead, LFloat size) { LVector2 borderDir = DirUtil.GetBorderDir(dir); var fBorder1 = fTargetHead + borderDir * size; var fBorder2 = fTargetHead - borderDir * size; var isColHead = HasCollider(fTargetHead); var isColBorder1 = HasCollider(fBorder1); var isColBorder2 = HasCollider(fBorder2); return(isColHead || isColBorder1 || isColBorder2); }
public List <LVector3Int> DebugQueryCollider(EDir dir, LVector2 fTargetHead, LFloat size) { var ret = new List <LVector3Int>(); LVector2 borderDir = DirUtil.GetBorderDir(dir); var fBorder1 = fTargetHead + borderDir * size; var fBorder2 = fTargetHead - borderDir * size; var isColHead = HasCollider(fTargetHead); var isColBorder1 = HasCollider(fBorder1); var isColBorder2 = HasCollider(fBorder2); ret.Add(new LVector3Int(fTargetHead.Floor().x, fTargetHead.Floor().y, isColHead ? 1 : 0)); ret.Add(new LVector3Int(fBorder1.Floor().x, fBorder1.Floor().y, isColBorder1 ? 1 : 0)); ret.Add(new LVector3Int(fBorder2.Floor().x, fBorder2.Floor().y, isColBorder2 ? 1 : 0)); return(ret); }
public void RebindView(GameEntity entity) { var id = entity.localId.value; if (_linkedEntities.ContainsKey(id)) { return; } var assetId = entity.asset.assetId; var prefab = Resources.Load <GameObject>(GameConfig.GetAssetPath(assetId)); var go = GameObject.Instantiate(prefab, transform.position + entity.pos.value.ToVector3(), Quaternion.Euler(0, 0, DirUtil.GetDirDeg(entity.dir.value)), transform); go.AddComponent <PosListener>(); go.AddComponent <DirListener>(); BindView(entity, _gameContext, go); }
public void Upgrade(IEntity iEntity){ var entity = iEntity as GameEntity; var playerCount = _gameConfigService.playerPrefabs.Count; var targetType = entity.unit.detailType + 1; if (targetType >= playerCount) { Debug.Log($"hehe already max level can not upgrade"); return; } var ecsPrefab = _gameConfigService.playerPrefabs[targetType] as ConfigUnit; var rawPos = entity.pos.value; var rawDir = entity.dir.value; ecsPrefab.SetComponentsTo(entity); entity.pos.value = rawPos; entity.dir.value = rawDir; if (!_constStateService.IsVideoLoading) { _viewService.DeleteView(entity.localId.value); _viewService.BindView(entity, (ushort) ecsPrefab.asset.assetId, rawPos, DirUtil.GetDirDeg(rawDir)); } }
public void RebindView(GameEntity entity) { var id = entity.entityId.value; if (_linkedEntities.ContainsKey(id)) { return; } var assetId = entity.asset.assetId; var path = _resService.GetAssetPath((ushort)assetId); if (string.IsNullOrEmpty(path)) { return; } var prefab = Resources.Load <GameObject>(path); var go = Object.Instantiate(prefab, transform.position + entity.pos.value.ToVector3(), Quaternion.Euler(0, 0, DirUtil.GetDirDeg(entity.dir.value)), transform); BindView(entity, go); }
public void Upgrade(IEntity iEntity) { var entity = iEntity as GameEntity; var targetKey = entity.asset.assetId + 1; if (!Table_ConfigPlayer.HasData(targetKey)) { Debug.Log($"hehe already max level can not upgrade"); return; } var rawPos = entity.pos.value; var rawDir = entity.dir.value; var tblData = Table_ConfigPlayer.GetData(targetKey); tblData.AssignToEntity(entity); entity.pos.value = rawPos; entity.dir.value = rawDir; if (!_constStateService.IsVideoLoading) { _viewService.DeleteView(entity.entityId.value); _viewService.BindView(entity, (ushort)entity.asset.assetId, rawPos, DirUtil.GetDirDeg(rawDir)); } }
private void Update() { var deg = DirUtil.GetDirDeg(_entity.dir.value); transform.localRotation = Quaternion.Euler(0, 0, deg); }
public void OnDir(GameEntity entity, EDir value) { var deg = DirUtil.GetDirDeg(value); //transform.localRotation = Quaternion.Euler(0,0,deg); }