// Start is called before the first frame update void Start() { if (points.Length > 0) { currentTarget = points[0]; } tolerance = speed * Time.deltaTime; meshDestroy = GetComponent <MeshDestroy>(); }
//Explosive damage to set a crumble effect with force if it would kill the enemy. public void TakeExplosiveDamage(int damage, float force) { //Only change crumble force if this would kill the enemy. if (health - damage <= 0) { MeshDestroy crumbleEffect = GetComponent <MeshDestroy>(); crumbleEffect.ExplodeForce = force; crumbleEffect.CutCascades = 4; } TakeDamage(damage); }
public void Notify(MeshDestroy m) { if (destroyIfAllDestroyed.Contains(m)) { destroyIfAllDestroyed.Remove(m); if (destroyIfAllDestroyed.Count == 0) { DestroyMesh(); } } }
private void OnCollisionEnter(Collision collision) { if (collision.gameObject.tag == "DestroyAble" && HasCrown) { if (collision.gameObject.GetComponent <MeshDestroy>() == null) { destructionParticle.Emit(10); CameraShake.instance?.Shake(.5f); AudioManager.instance?.PlaySound(AudioEffect.destruction, .5f); MeshDestroy md = collision.gameObject.AddComponent <MeshDestroy>(); md.sliced = true; md.DestroyMesh(); } } }
private void Start() { _currentState = State.Idle; _movementController = GetComponent <NPCMovement>(); _meshDestroyer = GetComponentInChildren <MeshDestroy>(); _animAI = GetComponent <Animator>(); _navmeshAgent = GetComponent <NavMeshAgent>(); _health = GetComponent <Health>(); attackAnimations = new List <AttackAnimationInfo>(); attackAnimations.Add(new AttackAnimationInfo("jab", 0.375f)); attackAnimations.Add(new AttackAnimationInfo("cross", 0.458f)); }
//When the enemy dies play a VFX and either cut/crumble depending on the enemy and attack, or just deactivate. private void Death() { FindObjectOfType <TimedCourse>().CountEnemies(); Destroy(Instantiate(vfx, transform.position, transform.rotation), 2); //have vfx self destroy later MeshDestroy crumbleEffect = GetComponent <MeshDestroy>(); if (crumbleEffect) { crumbleEffect.DestroyMesh(cutDirection, cutPoint, canCutChild); } else { gameObject.SetActive(false); //Destroy(gameObject); } }
public void MakeGameobject(MeshDestroy original, bool canCutChild) { GameObject = new GameObject(original.name); GameObject.transform.position = original.transform.position; GameObject.transform.rotation = original.transform.rotation; GameObject.transform.localScale = original.transform.localScale; var mesh = new Mesh(); mesh.name = original.GetComponent <MeshFilter>().mesh.name; mesh.vertices = Vertices; mesh.normals = Normals; mesh.uv = UV; for (var i = 0; i < Triangles.Length; i++) { mesh.SetTriangles(Triangles[i], i, true); } Bounds = mesh.bounds; var renderer = GameObject.AddComponent <MeshRenderer>(); renderer.materials = original.GetComponent <MeshRenderer>().materials; var filter = GameObject.AddComponent <MeshFilter>(); filter.mesh = mesh; var collider = GameObject.AddComponent <MeshCollider>(); collider.convex = true; var rigidbody = GameObject.AddComponent <Rigidbody>(); var meshDestroy = GameObject.AddComponent <MeshDestroy>(); meshDestroy.CutCascades = original.CutCascades; meshDestroy.ExplodeForce = original.ExplodeForce; //Custom properties GameObject.layer = 11; //ignore Player if (canCutChild) { var enemyScript = GameObject.AddComponent <DummyEnemy>(); enemyScript.vfx = original.GetComponent <DummyEnemy>().vfx; } Destroy(GameObject, original.childernLifeTime); }
public void MakeGameobject(MeshDestroy original) { GameObject = new GameObject(original.name); GameObject.transform.position = original.transform.position; GameObject.transform.rotation = original.transform.rotation; GameObject.transform.localScale = original.transform.localScale; var mesh = new Mesh(); mesh.name = original.GetComponent <MeshFilter>().mesh.name; mesh.vertices = Vertices; mesh.normals = Normals; mesh.uv = UV; for (var i = 0; i < Triangles.Length; i++) { mesh.SetTriangles(Triangles[i], i, true); } Bounds = mesh.bounds; var renderer = GameObject.AddComponent <MeshRenderer>(); renderer.materials = original.GetComponent <MeshRenderer>().materials; var filter = GameObject.AddComponent <MeshFilter>(); filter.mesh = mesh; var collider = GameObject.AddComponent <MeshCollider>(); try { collider.convex = true; var rigidbody = GameObject.AddComponent <Rigidbody>(); } catch (Exception e) { Debug.Log("Mesh Destroy error: " + e.Message); } //var meshDestroy = GameObject.AddComponent<MeshDestroy>(); //meshDestroy.CutCascades = original.CutCascades; //meshDestroy.ExplodeForce = original.ExplodeForce; }
void Start() { #if UNITY_ANDROID && UNITY_EDITOR variableJoystick = GameObject.Find("Movement Joystick").GetComponent <VariableJoystick>(); #endif _meshController = GetComponentInChildren <MeshDestroy>(); int playerLayerMask = LayerMask.NameToLayer("Player"); raycastLayers = 1 << playerLayerMask; raycastLayers = ~raycastLayers; _charController = GetComponent <CharacterController>(); _camController = playerCamera.parent.GetComponent <CameraFollow>(); _animator = GetComponent <Animator>(); _playerHealth = GetComponent <Health>(); _playerHealth.healthFill = GameObject.Find("HealthFill").GetComponent <Image>(); isAiming = false; }
public void MakeGameobject(MeshDestroy original) { _gameObject = new GameObject(original.name); _gameObject.transform.position = original.transform.position; _gameObject.transform.rotation = original.transform.rotation; _gameObject.transform.localScale = original.transform.localScale; var mesh = new Mesh(); mesh.name = original.GetComponent <MeshFilter>().mesh.name; mesh.vertices = Vertices; mesh.normals = Normals; mesh.uv = UV; for (var i = 0; i < Triangles.Length; i++) { mesh.SetTriangles(Triangles[i], i, true); } Bounds = mesh.bounds; var renderer = _gameObject.AddComponent <MeshRenderer>(); renderer.materials = original.GetComponent <MeshRenderer>().materials; var filter = _gameObject.AddComponent <MeshFilter>(); filter.mesh = mesh; var collider = _gameObject.AddComponent <MeshCollider>(); collider.convex = true; var rigidbody = _gameObject.AddComponent <Rigidbody>(); var meshDestroy = _gameObject.AddComponent <MeshDestroy>(); meshDestroy.CutCascades = original.CutCascades; meshDestroy.ExplodeForce = original.ExplodeForce; _gameObject.SetActive(false); _gameObject.transform.parent = original.transform; original.fragments.Add(_gameObject); }
public void MakeGameobject(MeshDestroy original) { GameObject = new GameObject(original.name); GameObject.transform.position = original.transform.position; GameObject.transform.rotation = original.transform.rotation; GameObject.transform.localScale = original.transform.localScale; var mesh = new Mesh(); mesh.name = original.GetComponent <MeshFilter>().mesh.name; mesh.vertices = Vertices; mesh.normals = Normals; mesh.uv = UV; for (var i = 0; i < Triangles.Length; i++) { mesh.SetTriangles(Triangles[i], i, true); } Bounds = mesh.bounds; var renderer = GameObject.AddComponent <MeshRenderer>(); renderer.materials = original.GetComponent <MeshRenderer>().materials; var filter = GameObject.AddComponent <MeshFilter>(); filter.mesh = mesh; var collider = GameObject.AddComponent <MeshCollider>(); collider.convex = true; var rigidbody = GameObject.AddComponent <Rigidbody>(); // var meshDestroy = GameObject.AddComponent<SelfDestroy>(); // убираю его чтоб на завис комп и чтоб не ломалось дальше // meshDestroy.CutCascades = original.CutCascades; // meshDestroy.ExplodeForce = original.ExplodeForce; }