protected override void HandleCollision() { if (LayerMaskUtil.ContainsLayer(mCollisionMask, mCollider.gameObject.layer)) { mBomb.mDetonationActivated = true; } }
protected void HandleTriggerCollision(Collider collider) { if (LayerMaskUtil.ContainsLayer(mCollisionMask, collider.gameObject.layer)) { mBomb.mDetonationActivated = true; } }
protected void HandleDestructionCollision(Collider collider) { if (LayerMaskUtil.ContainsLayer(mDestructionMask, collider.gameObject.layer)) { Destroy(gameObject.transform.root.gameObject); } }
protected void HandleBomberCharacterCollision(Collider collider) { if (LayerMaskUtil.ContainsLayer(mBomberMask, collider.gameObject.layer)) { HandleCollected(collider); } }
void OnTriggerEnter(Collider collider) { if (!mDestructionActivated && LayerMaskUtil.ContainsLayer(mDestroyLayerMask, collider.gameObject.layer)) { mDestructionTime = Time.time + 1; mDestructionActivated = true; } }
//private static readonly Action<SectionForceInput>[] ForceApplicators; //static Airfoil() { // ForceApplicators = new Action<SectionForceInput>[3]; // ForceApplicators[(int) ForceType.Lift] = ApplyLift; // ForceApplicators[(int)ForceType.Drag] = ApplyDrag; // ForceApplicators[(int)ForceType.Moment] = ApplyMoment; //} private void Awake() { ConfigureAxes(); RecalculateSectionProperties(); _layerMask = LayerMaskUtil.CreateLayerMask("Player", "Head", "UI", "Interactive").Invert(); Clear(); }
protected void OnTriggerEnter(Collider collider) { if (LayerMaskUtil.ContainsLayer(mPlayerMask, collider.gameObject.layer)) { // TODO: Code the win pose here LevelChangeManager.ChangeLevel(); } }
private void Awake() { _layerMask = LayerMaskUtil.CreateLayerMask("Player", "Head", "UI", "Interactive").Invert(); if (_predictionBuffer == null || _historyBuffer == null) { InitBuffers(); } }
protected override void HandleCollision() { if (mCollider != null) { if (LayerMaskUtil.ContainsLayer(mCollisionMask, mCollider.gameObject.layer)) { mHitTakenController.ApplyHit(); } } }
void OnTriggerExit(Collider other) { if (LayerMaskUtil.GetLayerMask(MyLayers.Interactable).Contains(other.gameObject.layer)) { if (other.GetComponent <MonoInteractable>() == currentInteractable) { currentInteractable = null; EventBus.Post(new InteractableChangedEvent()); } } }
public bool CheckCollision(LayerMask layers) { foreach (var collider in GetCollidersInside()) { if (LayerMaskUtil.IsIncluded(layers, collider.gameObject.layer)) { return(true); } } return(false); }
private IEnumerable <RaycastHit2D> GetHits(LayerMask layerMask, IEnumerable <RaycastHit2D> hits) { foreach (var hit in hits) { if (LayerMaskUtil.IsIncluded(layerMask, hit.collider.gameObject.layer)) { yield return(hit); } } yield break; }
void OnTriggerEnter(Collider other) { if (LayerMaskUtil.GetLayerMask(MyLayers.Interactable).Contains(other.gameObject.layer)) { var interactble = other.gameObject.GetComponent <MonoInteractable>(); if (interactble && interactble.enabled) { currentInteractable = interactble; EventBus.Post(new InteractableChangedEvent()); } } }
public void AddCollision(Collider collider) { if (LayerMaskUtil.ContainsLayer(mCollisionMask, collider.gameObject.layer)) { // if(mCollisionEnabled && collider != null && mStrikeBoxCollider == null) if (!mHasCollision && mCollisionEnabled) { mHasCollision = true; mCollider = collider; // mCollisionEnabled = false; } } }
IEnumerator CoroGenerateSheep() { yield return(new WaitUntil(() => GameContext.Instance)); while (GameContext.Instance.pollutionState == PollutionState.None) { yield return(new WaitForSeconds(0.1f)); var player = GameContext.Instance.player; foreach (var sheep in generatedSheep) { if (!sheep) { continue; } if (Vector3.Distance(player.transform.position, sheep.transform.position) > maxSheepPlayerDist) { Destroy(sheep); } } // 删除销毁的羊 generatedSheep.RemoveAll(x => !x); // 尝试生成一个新的羊 if (generatedSheep.Count < maxSheepCount && (DateTime.Now - _lastGenerateTime).TotalSeconds > minGenerateTime) { var dist = sheepDistRange.random; var dir = UnityEngine.Random.insideUnitCircle; var dir3 = new Vector3(dir.x, 0, dir.y); if (!Physics.Raycast(player.transform.position + Vector3.up, dir3, dist, LayerMaskUtil.GetLayerMask(0))) { var npos = player.transform.position + dir3 * dist; var sheepInstance = Instantiate(prefab, transform); sheepInstance.transform.position = npos; generatedSheep.Add(sheepInstance); _lastGenerateTime = DateTime.Now; XDebug.Log("Generated new sheep"); } else { XDebug.Log("Position failed"); } } } }
protected override void HandleCollision() { if (mCollider != null) { if (LayerMaskUtil.ContainsLayer(mCollisionMask, mCollider.gameObject.layer)) { mDestructionActivated = true; mCollisionEnabled = false; } } else { CleanCollision(); } }
protected void DrawBoxCollider(Collider collider) { if (collider.GetType() == typeof(BoxCollider)) { BoxCollider boxCollider = (BoxCollider)collider; Vector3 finalScale = boxCollider.size; Transform parentTransform = gameObject.transform.parent; if (parentTransform != null) { finalScale = Vector3.Scale(finalScale, parentTransform.localScale); } if (collider.isTrigger && GameFlag.drawTriggerBoxes) { if (LayerMaskUtil.ContainsLayerInGameObject(collider.gameObject, LayerName.EXPLOSION_STRIKE_BOX)) { Gizmos.color = Color.red; } else { if (LayerMaskUtil.ContainsLayerInGameObject(collider.gameObject, LayerName.ENEMY_STRIKE_BOX)) { Gizmos.color = Color.yellow; } else { Gizmos.color = Color.green; } } Gizmos.DrawWireCube(collider.transform.position, finalScale); } if (!collider.isTrigger && GameFlag.drawNonTriggerBoxes) { Gizmos.color = Color.blue; Gizmos.DrawWireCube(collider.transform.position, finalScale); } } }
// void OnDrawGizmosSelected() // { // Render(); // } protected void Render() { GameObject[] gameObjects = GameObject.FindObjectsOfType <GameObject>(); foreach (GameObject gameObject in gameObjects) { if (mRenderer != null && !LayerMaskUtil.ContainsLayer(mIgnoredLayer, gameObject.layer)) { Collider[] colliders = gameObject.GetComponents <Collider>(); foreach (Collider collider in colliders) { if (!collider.enabled) { continue; } DrawBoxCollider(collider); // DrawCapsuleCollider(collider); DrawSphereCollider(collider); } } } }
void Awake() { _layerMask = LayerMaskUtil.CreateLayerMask(_layers); }