Esempio n. 1
0
    private void OnEnable()
    {
        if (hitboxBackgroundStyle == null)
        {
            hitboxBackgroundStyle = new GUIStyle();
            hitboxBackgroundStyle.normal.background = MakeTexture(1, 1, new Color(0f, 0f, 0f, 0.2f));
        }
        //When changing scenes the background is deleted
        else if (hitboxBackgroundStyle.normal.background == null)
        {
            hitboxBackgroundStyle.normal.background = MakeTexture(1, 1, new Color(0f, 0f, 0f, 0.2f));
        }

        targetComponents = target as HitBoxComponent;
        AnimationHelper.init();

        targetComponents.SyncKeyFramesWithSimpleAnimator();

        if (targetComponents.inspectorTemp != null)
        {
            var state = targetComponents.GetState(targetComponents.GetStateNames()[targetComponents.inspectorTemp.animationindex]);
            AnimationHelper.SetCurrentClip(state.clip);
            traceAnimMode = (TraceAnimMode)targetComponents.inspectorTemp.traceAnimMode;
        }
    }
Esempio n. 2
0
 private void SetHitBoxesForEnemie(EnemieElementsComponent enemie)
 {
     foreach (var rb in enemie.ragdollsRigidbodies)
     {
         HitBoxComponent hitBox = rb.gameObject.AddComponent <HitBoxComponent>();
         hitBox.enemieElements = enemie;
     }
 }
Esempio n. 3
0
    private static void DrawHitBoxComponentGizmo(HitBoxComponent target, GizmoType gizmoType)
    {
        if (target.gizmoController.drawGizmoData == null)
        {
            return;
        }

        var color = new Color32(0, 0, 255, 210);

        //GizmoType.Active の時は赤色にする
        if ((gizmoType & GizmoType.Active) == GizmoType.Active)
        {
            color = new Color(Color.red.r, Color.red.g, Color.red.b, 210);
        }
        var transform = target.gameObject.transform;

        foreach (var keyframe in target.gizmoController.drawGizmoData)
        {
            var sign = target.GetDirectionSign();
            foreach (var e in keyframe.colliders)
            {
                if (e.colliderParam is RectColliderParam)
                {
                    var rect       = e.colliderParam as RectColliderParam;
                    var rectcenter = rect.rect.center;
                    rectcenter.Scale(new Vector3(sign, 1.0f, 1.0f));
                    var directedrect = rect.rect;
                    directedrect.center = rectcenter;
                    var position = new Vector3(directedrect.position.x + transform.position.x, directedrect.position.y + transform.position.y, transform.position.z);
                    DrawRectGizmo(position, rect.rect.size, color);
                }
                else if (e.colliderParam is SphereColliderParam)
                {
                    var sphere      = e.colliderParam as SphereColliderParam;
                    var preposition = sphere.position;
                    preposition.Scale(new Vector3(sign, 1.0f, 1.0f));
                    var position = new Vector3(preposition.x + transform.position.x, preposition.y + transform.position.y, transform.position.z);

                    DrawSphereGizmo(position, sphere.radius, color);
                }
                else if (e.colliderParam is CapsuleColliderParam)
                {
                    var capsule  = e.colliderParam as CapsuleColliderParam;
                    var prestart = capsule.start;
                    prestart.Scale(new Vector3(sign, 1.0f, 1.0f));
                    var start  = new Vector3(prestart.x + transform.position.x, prestart.y + transform.position.y, transform.position.z);
                    var preend = capsule.end;
                    preend.Scale(new Vector3(sign, 1.0f, 1.0f));
                    var end = new Vector3(preend.x + transform.position.x, preend.y + transform.position.y, transform.position.z);

                    DrawCapsuleGizmo(start, end, capsule.radius, color);
                }
            }
        }
    }
Esempio n. 4
0
 void IFixedUpdating.OnFixedUpdate()
 {
     bullets = game.bullets;
     foreach (var bullet in game.bullets)
     {
         if (!bullet.canCheck)
         {
             continue;
         }
         Collider[] colliders = Physics.OverlapSphere(bullet.transform.position, bullet.radius);
         foreach (var collider in colliders)
         {
             HitBoxComponent hitBoxComponent = collider.gameObject.GetComponent <HitBoxComponent>();
             if (hitBoxComponent)
             {
                 hitBoxComponent.ActivateAttack(bullet.transform.position);
             }
         }
         if (colliders.Length != 0 || bullet.transform.position.y < -5f)
         {
             StartCoroutine(WaitBeforeVFXEnded(bullet));
         }
     }
 }