public static ColliderPrefab CreateColliderPrefab(GameObject fab, ColliderData data) { Debug.Trace("CreateColliderPrefab " + fab.name); CBaseShape collider = null; if (data == null) { Debug.LogError(fab.name + " Miss ColliderDataMono "); return(null); } if (data.radius > 0) { //circle collider = new CCircle(data.radius); } else { //obb collider = new COBB(data.size, data.deg); } Debug.Trace($"{fab.name} !!!CreateCollider deg: {data.deg} up:{data.size} radius:{data.radius}"); var colFab = new ColliderPrefab(); colFab.parts.Add(new ColliderPart() { transform = new CTransform2D(LVector2.zero), collider = collider }); return(colFab); }
public void Play(string name, bool isCrossfade = false) { if (config == null) { return; } if (_curAnimName == name) { return; } var idx = _animNames.IndexOf(name); if (idx == -1) { UnityEngine.Debug.LogError("miss animation " + name); return; } Debug.Trace($"{baseEntity.EntityId} PlayAnim {name} rawName {_curAnimName}"); var hasChangedAnim = _curAnimName != name; _curAnimName = name; _curAnimIdx = idx; UpdateBindInfo(); if (hasChangedAnim) { //owner.TakeDamage(0, owner.transform2D.Pos3); ResetAnim(); } view?.Play(_curAnimName, isCrossfade); }
public void StartGame(Msg_G2C_GameStartInfo gameStartInfo, int localPlayerId) { if (_hasStart) { return; } _hasStart = true; var playerInfos = gameStartInfo.UserInfos; var playerCount = playerInfos.Length; string _traceLogPath = ""; #if UNITY_STANDALONE_OSX _traceLogPath = $"/tmp/LPDemo/Dump_{localPlayerId}.txt"; #else _traceLogPath = $"c:/tmp/LPDemo/Dump_{Instance.localPlayerId}.txt"; #endif Debug.TraceSavePath = _traceLogPath; Debug.Trace("CreatePlayer " + playerCount); //create Players for (int i = 0; i < playerCount; i++) { var PrefabId = 0; //TODO var initPos = LVector2.zero; //TODO var player = _gameStateService.CreateEntity <Player>(PrefabId, initPos); player.localId = i; } var allPlayers = _gameStateService.GetPlayers(); MyPlayer = allPlayers[localPlayerId]; }
public void StartGame(int mapId, PlayerServerInfo[] playerInfos, int playerId) { _hasStart = true; curMapId = mapId; playerCount = playerInfos.Length; playerServerInfos = playerInfos; localPlayerId = playerId; Debug.TraceSavePath = _traceLogPath; allPlayers.Clear(); for (int i = 0; i < playerCount; ++i) { Debug.Trace("createPlayer"); allPlayers.Add(new Player() { localId = i }); } //创建玩家 for (int i = 0; i < playerCount; ++i) { var playerInfo = playerInfos[i]; var go = HeroManager.InstantiateEntity(allPlayers[i], playerInfo.prefabId, playerInfo.initPos); if (allPlayers[i].localId == localPlayerId) { MyPlayerTrans = go.transform; } } MyPlayer = allPlayers[localPlayerId]; }
private void _CheckRegionCircle(ColliderProxy obj) { Debug.Trace($"ColliderProxy _CheckRegionCircle {obj.Id} trans{obj.Transform2D} col{obj.Prefab}"); if (CollisionHelper.CheckCollision(obj.Prefab, obj.Transform2D, _tempPos, _tempRadius)) { tempCallback(obj); } }
private void _CheckRegionOBB(ColliderProxy obj) { Debug.Trace($"ColliderProxy _CheckRegionOBB {obj.Id} trans{obj.Transform2D} col{obj.Prefab}"); if (CollisionHelper.CheckCollision(obj.Prefab, obj.Transform2D, _tempPos, _tempSize, _tempForward)) { tempCallback(obj); } }
public void QueryRegion(int layerType, LVector2 pos, LFloat radius, FuncCollision callback) { Debug.Trace($"QueryRegion layerType:{layerType} pos:{pos} radius:{radius} "); tempCallback = callback; _tempPos = pos; _tempRadius = radius; GetBoundTree(layerType).CheckCollision(pos, radius, _CheckRegionCircle); }
public static BaseEntity InstantiateEntity(int prefabId, LVector3 position) { var prefab = ResourceManager.LoadPrefab(prefabId); object config = ResourceManager.GetEnemyConfig(prefabId); Debug.Trace("createEnemy"); var entity = new Enemy(); var obj = UnityEntityService.CreateEntity(entity, prefabId, position, prefab, config); obj.name = obj.name + enemyID++; return(entity); }
public void QueryRegion(int layerType, LVector2 pos, LVector2 size, LVector2 forward, FuncCollision callback) { Debug.Trace($"QueryRegion layerType:{layerType} pos:{pos} size:{size} forward:{forward} "); tempCallback = callback; _tempSize = size; _tempForward = forward; _tempPos = pos; var radius = size.magnitude; var checkBounds = LRect.CreateRect(pos, new LVector2(radius, radius)); GetBoundTree(layerType).CheckCollision(ref checkBounds, _CheckRegionOBB); }
public static ColliderPrefab CreateColliderPrefab(GameObject fab, ColliderData data) { Debug.Trace("CreateColliderPrefab " + fab.name); if (data == null) { Debug.LogError(fab.name + " Miss ColliderDataMono "); return(null); } Debug.Trace($"{fab.name} !!!CreateCollider deg: {data.deg} up:{data.size} radius:{data.radius}"); return(CreateColliderPrefab(data)); }
public void SetTime(LFloat timer) { if (config == null) { return; } var idx = GetTimeIdx(timer); _intiPos = transform.Pos3 - curAnimInfo[idx].pos; Debug.Trace( $"{baseEntity.EntityId} SetTime idx:{idx} intiPos {baseEntity.transform.Pos3}", true); this._timer = timer; }
void UpdateAttack(LFloat deltaTime) { timer += deltaTime; if (timer >= timeBetweenAttacks && playerInRange && currentHealth > 0) { timer = LFloat.zero; if (player.currentHealth > 0) { Debug.Trace($"{EntityId}Atk{player.EntityId}"); player.TakeDamage(attackDamage, player.transform.Pos3); } } if (player.currentHealth <= 0) { eventHandler.OnPlayerDied(); } }
public static BaseEntity InstantiateEntity(int prefabId, LVector3 position) { var prefab = ResourceManager.LoadPrefab(prefabId); object config = ResourceManager.Instance.GetEnemyConfig(prefabId); Debug.Trace("CreateEnemy"); var entity = new Enemy(); var obj = EntityView.CreateEntity(entity, prefabId, position, prefab, config); entity.nav = obj.GetComponent <NavMeshAgentMono>(); entity.nav.DoStart(); entity.nav.enabled = false; entity.CBrain = new CBrain(); entity.CBrain.Init(entity, 0); obj.name = obj.name + enmeyID++; obj.name = obj.name + enmeyID++; return(entity); }
public override void DoStart() { if (_instance != this) { Debug.LogError("Duplicate CollisionSystemAdapt!"); return; } var collisionSystem = new CollisionSystem() { worldSize = worldSize, pos = pos, minNodeSize = minNodeSize, loosenessval = loosenessval }; Debug.Trace($"worldSize:{worldSize} pos:{pos} minNodeSize:{minNodeSize} loosenessval:{loosenessval}"); this.collisionSystem = collisionSystem; collisionSystem.DoStart(collisionMatrix, allTypes); collisionSystem.funcGlobalOnTriggerEvent += GlobalOnTriggerEvent; }
private void _Start() { DoStart(); foreach (var mgr in managers) { mgr.DoStart(); } Debug.Trace("Before StartGame _IdCounter:" + BaseEntity.idCounter); if (!isReplay && !isClientMode) { netClient = new NetClient(); netClient.Start(); netClient.Send(new Msg_JoinRoom() { name = Application.dataPath }); } else { StartGame(0, playerServerInfos, localPlayerId); } }
public BaseEntity() { Debug.Trace("BaseEntity " + idCounter.ToString(), true); entityID = ++idCounter; rigidbody.transform2D = transform; }
public static ColliderPrefab CreateColliderPrefab(GameObject fab) { Debug.Trace("CreateColliderPrefab " + fab.name); #if false Collider unityCollider = null; var colliders = fab.GetComponents <Collider>(); foreach (var col in colliders) { if (col.isTrigger) { unityCollider = col; break; } } if (unityCollider == null) { foreach (var col in colliders) { unityCollider = col; break; } } if (unityCollider == null) { return(null); } CBaseShape collider = null; if (unityCollider is BoxCollider boxCol) { collider = new COBB(boxCol.size.ToLVector2XZ(), LFloat.zero); } if (unityCollider is SphereCollider cirCol) { collider = new CCircle(cirCol.radius.ToLFloat()); } if (unityCollider is CapsuleCollider capCol) { collider = new CCircle(capCol.radius.ToLFloat()); } if (collider is COBB tObb) { Debug.LogTrace($"{fab.name} CreateCollider OBB deg: {tObb.deg} up:{tObb.up} radius:{tObb.radius}"); } if (collider is CCircle tCircle) { Debug.LogTrace($"{fab.name} CreateCollider Circle deg: radius:{tCircle.radius}"); } #else CBaseShape collider = null; var data = fab.GetComponent <ColliderDataMono>()?.colliderData; if (data == null) { Debug.LogError(fab.name + " Miss ColliderDataMono "); return(null); } if (data.radius > 0) { //circle collider = new CCircle(data.radius); } else { //obb collider = new COBB(data.size, data.deg); } Debug.Trace($"{fab.name} !!!CreateCollider deg: {data.deg} up:{data.size} radius:{data.radius}"); #endif var colFab = new ColliderPrefab(); colFab.parts.Add(new ColliderPart() { transform = new CTransform2D(LVector2.zero), collider = collider }); return(colFab); }
public override void OnLPTriggerEnter(ColliderProxy other) { Debug.Trace($"{EntityId} OnLPTriggerEnter {other.Entity.EntityId}"); playerInRange = true; }
public BaseEntity() { Debug.Trace("BaseEntity " + _IdCounter.ToString(), true); EntityId = _IdCounter++; rigidbody.transform2D = transform; }
public override void OnLPTriggerExit(ColliderProxy other) { Debug.Trace($"{EntityId} OnLPTriggerExit {other.Entity.EntityId}"); playerInRange = false; }