コード例 #1
0
    public static void DrawShootableRect(EnemyBodyShootWithStopChecker shootChecker)
    {
        Handles.color = new Color(0f, 0.5f, 0.5f, 0.05f);
        Handles.DrawSolidDisc(
            shootChecker.actor.transform.position,
            Vector3.down,
            shootChecker.disToShoot
            );

        Handles.color = Color.white;

        var discPoint = shootChecker.actor.transform.position + Vector3.right * shootChecker.disToShoot;
        var size      = HandleUtility.GetHandleSize(discPoint);

        MakeButton(1, discPoint, size);
        CheckChange(1, shootChecker, discPoint);

        discPoint = shootChecker.actor.transform.position + Vector3.left * shootChecker.disToShoot;
        size      = HandleUtility.GetHandleSize(discPoint);
        MakeButton(2, discPoint, size);
        CheckChange(2, shootChecker, discPoint);

        discPoint = shootChecker.actor.transform.position + Vector3.forward * shootChecker.disToShoot;
        size      = HandleUtility.GetHandleSize(discPoint);
        MakeButton(3, discPoint, size);
        CheckChange(3, shootChecker, discPoint);

        discPoint = shootChecker.actor.transform.position + Vector3.back * shootChecker.disToShoot;
        size      = HandleUtility.GetHandleSize(discPoint);
        MakeButton(4, discPoint, size);
        CheckChange(4, shootChecker, discPoint);
    }
コード例 #2
0
 private static void CheckChange(int index, EnemyBodyShootWithStopChecker shootChecker, Vector3 point)
 {
     if (selectedIndex == index)
     {
         EditorGUI.BeginChangeCheck();
         point = Handles.DoPositionHandle(point, Quaternion.identity);
         if (EditorGUI.EndChangeCheck())
         {
             Undo.RecordObject(shootChecker, "Change Radius");
             EditorUtility.SetDirty(shootChecker);
             shootChecker.disToShoot = Vector3.Distance(shootChecker.transform.position, point);
         }
     }
 }
コード例 #3
0
    private void OnSceneGUI()
    {
                #if UNITY_EDITOR
        selectedCheckerInfo = target as EnemyBodyShootWithStopChecker;

        if (null == selectedCheckerInfo)
        {
            return;
        }
        if (null == selectedCheckerInfo.actor)
        {
            selectedCheckerInfo.actor  = selectedCheckerInfo.GetComponentInParent <Actor>();
            selectedCheckerInfo.eActor = EnemyActor.GetEnemyActor <Actor> (selectedCheckerInfo.actor);
        }

        EnemyViewRenderer.DrawRecognizableRect(selectedCheckerInfo.eActor.GetEnemyOutsideInfo());
        EnemyViewRenderer.DrawViewableRect(selectedCheckerInfo.eActor.GetEnemyOutsideInfo());
        DrawShootableRect(selectedCheckerInfo);
                #endif
    }