예제 #1
0
 private void OnEnable()
 {
     EditorApplication.hierarchyChanged += ChangedInspector;
     //Target
     script = (DrawGizmo)target;
     //SerializedObject
     s_Script = new SerializedObject(script);
     //SerializedPropertys
     s_DrawGizmo     = s_Script.FindProperty("drawGizmo");
     s_Wireframe     = s_Script.FindProperty("wireframe");
     s_Color         = s_Script.FindProperty("color");
     s_ColliderType  = s_Script.FindProperty("colliderType");
     s_SyncType      = s_Script.FindProperty("syncType");
     s_Size          = s_Script.FindProperty("size");
     s_Radius        = s_Script.FindProperty("radius");
     s_Height        = s_Script.FindProperty("height");
     s_ShowText      = s_Script.FindProperty("showText");
     s_Text          = s_Script.FindProperty("text");
     s_FontSize      = s_Script.FindProperty("fontSize");
     s_FontColor     = s_Script.FindProperty("fontColor");
     s_DrawLine      = s_Script.FindProperty("drawLine");
     s_LineColor     = s_Script.FindProperty("lineColor");
     s_Offset        = s_Script.FindProperty("offset");
     s_NoBoxColl     = s_Script.FindProperty("noBoxCollider");
     s_NoSphereColl  = s_Script.FindProperty("noSphereCollider");
     s_NoCapsuleColl = s_Script.FindProperty("noCapsuleCollider");
 }
예제 #2
0
    void OnEnable()
    {
        DrawGizmo drawGizmo = (DrawGizmo)target;

        gizmoType = serializedObject.FindProperty("gizmoType");
        color     = serializedObject.FindProperty("color");
        wire      = serializedObject.FindProperty("wire");
        offset    = serializedObject.FindProperty("offset");
        radius    = serializedObject.FindProperty("radius");

        gizmosFolderPath = "Assets/Gizmos";
        string[] files = Directory.GetFiles(gizmosFolderPath);

        sprites = new List <string>();

        foreach (string file in files)
        {
            string fileName = Path.GetFileName(file);

            if (HasExtension(fileName))
            {
                sprites.Add(fileName);

                string guid = AssetDatabase.AssetPathToGUID(gizmosFolderPath + "/" + fileName);

                if (guid == drawGizmo.GetSpriteGUID()) // If a sprite was previously set, get back to it
                {
                    spriteIndex = sprites.Count - 1;
                }
            }
        }
    }
예제 #3
0
    public override void OnInspectorGUI()
    {
        DrawGizmo drawGizmo = (DrawGizmo)target;

        EditorGUILayout.Space();

        EditorGUILayout.PropertyField(gizmoType);

        if (drawGizmo.GetGizmoType() == DrawGizmo.GizmoType.Cube || drawGizmo.GetGizmoType() == DrawGizmo.GizmoType.Sphere)
        {
            EditorGUILayout.PropertyField(color);
            EditorGUILayout.PropertyField(wire);
            EditorGUILayout.PropertyField(offset);
            EditorGUILayout.PropertyField(radius);
        }
        else if (drawGizmo.GetGizmoType() == DrawGizmo.GizmoType.Sprite)
        {
            spriteIndex = EditorGUILayout.Popup("Sprite", spriteIndex, sprites.ToArray());
            drawGizmo.SetSpriteGUID(AssetDatabase.AssetPathToGUID(gizmosFolderPath + "/" + sprites[spriteIndex]));
            EditorGUILayout.PropertyField(offset);
            string helpBoxTxt = string.Format("Sprites must be in {0} folder.\nSupported file formats are: {1}.", gizmosFolderPath, supportedExtensions.ToStringAll(", "));
            EditorGUILayout.HelpBox(helpBoxTxt, MessageType.Info);
        }

        serializedObject.ApplyModifiedProperties();
    }
예제 #4
0
    public void CheckForPlacement(GameObject go)
    {
        DrawGizmo lookatGizmo = moveTowardsObject.GetComponent <DrawGizmo>();

        if (lookatGizmo.isShapeLocation)
        {
            transform.LookAt(lookatGizmo.attachedObject.transform);
            Vector3 tempTrans = lookatGizmo.attachedObject.transform.position;
            tempTrans.y = this.transform.position.y;
            transform.LookAt(tempTrans);
            animator.SetTrigger("Pickup");
            lookatGizmo.attachedObject.GetComponent <HologramShapes>().Delocate(pickupLocation.gameObject);
            StartCoroutine(AIManager.Instance.MoveRobotToDropoff(AIManager.Instance.WaitTimeBetweenMove));
            return;
        }

        if (lookatGizmo.isDropoffLocation)
        {
            pickupLocation.GetComponentInChildren <HologramShapes>().LetGo();
            AIManager.Instance.MoveRobot(AIManager.Instance.WaitTimeBetweenMove);
            return;
        }
        AIManager.Instance.MoveRobot(AIManager.Instance.WaitTimeBetweenMove);
    }
예제 #5
0
 private void Awake()
 {
     instance        = this;
     instance.gizmos = new HashSet <DebugGizmo>();
 }