private void OnSceneGUI() { Damager damager = (Damager)target; if (!damager.enabled) return; Matrix4x4 handleMatrix = damager.transform.localToWorldMatrix; handleMatrix.SetRow(0, Vector4.Scale(handleMatrix.GetRow(0), new Vector4(1f, 1f, 0f, 1f))); handleMatrix.SetRow(1, Vector4.Scale(handleMatrix.GetRow(1), new Vector4(1f, 1f, 0f, 1f))); handleMatrix.SetRow(2, new Vector4(0f, 0f, 1f, damager.transform.position.z)); using (new Handles.DrawingScope(handleMatrix)) { s_BoxBoundsHandle.center = damager.offset; s_BoxBoundsHandle.size = damager.size; s_BoxBoundsHandle.SetColor(s_EnabledColor); EditorGUI.BeginChangeCheck(); s_BoxBoundsHandle.DrawHandle(); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(damager, "Modify Damager"); damager.size = s_BoxBoundsHandle.size; damager.offset = s_BoxBoundsHandle.center; } } }
public void Die(Damager damager)//, Damageable damageable) { Vector2 throwVector = new Vector2(0, 2.0f); Vector2 damagerToThis = damager.transform.position - transform.position; throwVector.x = Mathf.Sign(damagerToThis.x) * -4.0f; SetMoveVector(throwVector); m_Animator.SetTrigger(m_HashDeathPara); //dieAudio.PlayRandomSound(); m_Dead = true; m_Collider.enabled = false; //CameraShaker.Shake(0.15f, 0.3f); }
public void Hit(Damager damager)//, Damageable damageable) { // if (damageable.CurrentHealth <= 0) // return; m_Animator.SetTrigger(m_HashHitPara); Vector2 throwVector = new Vector2(0, 3.0f); Vector2 damagerToThis = damager.transform.position - transform.position; throwVector.x = Mathf.Sign(damagerToThis.x) * -2.0f; m_MoveVector = throwVector; if (m_FlickeringCoroutine != null) { StopCoroutine(m_FlickeringCoroutine); m_SpriteRenderer.color = m_OriginalColor; } //m_FlickeringCoroutine = StartCoroutine(Flicker(damageable)); //CameraShaker.Shake(0.15f, 0.3f); }
void Awake() { m_chracter = GetComponent <CharacterComponent>(); m_character_controller = GetComponent <CharacterController2D>(); m_sprite_renderer = GetComponent <SpriteRenderer>(); m_animator = GetComponent <Animator>(); m_damager = GetComponent <Damager>(); m_sprite_forward = sprite_face_left ? Vector2.left : Vector2.right; if (m_sprite_renderer.flipX) { m_sprite_forward = -m_sprite_forward; } if (is_random_dir) { MoveRandom(); } else { m_next_move = Random.Range(-1, 2); } }