Esempio n. 1
0
        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;
                }
            }
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
            }
        }