Example #1
0
 public virtual void Hit(Vector3 position)
 {
     if (null != hitPrefab)
     {
         UnitHit hit = GameObject.Instantiate <UnitHit>(hitPrefab);
         hit.attack             = this;
         hit.transform.position = position;
     }
 }
Example #2
0
    public override void OnInspectorGUI()
    {
        UnitHit hit = (UnitHit)target;

        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("Shake Camera");
        hit.shakeCamera = EditorGUILayout.Toggle(hit.shakeCamera);
        EditorGUILayout.EndHorizontal();

        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("Hit Count");
        hit.hitCount = EditorGUILayout.IntField(hit.hitCount);
        EditorGUILayout.EndHorizontal();

        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("Collider Type");
        UnitHit.ColliderType newColliderType = (UnitHit.ColliderType)EditorGUILayout.EnumPopup(hit.colliderType);
        EditorGUILayout.EndHorizontal();

        if (newColliderType != hit.colliderType)
        {
            switch (hit.colliderType)
            {
            case UnitHit.ColliderType.Box:
                DestroyImmediate(hit.gameObject.GetComponent <BoxCollider2D> (), true);
                break;

            case UnitHit.ColliderType.Circle:
                DestroyImmediate(hit.gameObject.GetComponent <CircleCollider2D> (), true);
                break;

            case UnitHit.ColliderType.Ellipse:
                DestroyImmediate(hit.gameObject.GetComponent <EllipseCollider2D> (), true);
                DestroyImmediate(hit.gameObject.GetComponent <EdgeCollider2D> (), true);
                break;
            }

            switch (newColliderType)
            {
            case UnitHit.ColliderType.Box:
                hit.gameObject.AddComponent <BoxCollider2D> ().isTrigger = true;;
                break;

            case UnitHit.ColliderType.Circle:
                hit.gameObject.AddComponent <CircleCollider2D> ().isTrigger = true;
                break;

            case UnitHit.ColliderType.Ellipse:
                hit.gameObject.AddComponent <EllipseCollider2D> ();
                hit.gameObject.GetComponent <EdgeCollider2D> ().isTrigger = true;;
                break;
            }
        }

        hit.colliderType = newColliderType;
    }