/////////////////////////////////////////////////////////////////////////////// // functions /////////////////////////////////////////////////////////////////////////////// // ------------------------------------------------------------------ /// Awake functoin inherit from MonoBehaviour. /// /// \note if you inherit from exPlane, and implement your own Awake function, /// you need to override this and call base.Awake() in your Awake block. // ------------------------------------------------------------------ virtual protected void Awake() { // if (camera_ == null) { camera_ = Camera.main; } // if (camera_ != null) { spriteMng_ = camera_.GetComponent <exSpriteMng>(); if (spriteMng_ == null) { spriteMng_ = camera_.gameObject.AddComponent <exSpriteMng>(); } } // meshFilter_ = GetComponent <MeshFilter>(); // collisionHelper_ = GetComponent <exCollisionHelper>(); if (collisionHelper_) { collisionHelper_.plane = this; } }
/////////////////////////////////////////////////////////////////////////////// // functions /////////////////////////////////////////////////////////////////////////////// // ------------------------------------------------------------------ /// Awake functoin inherit from MonoBehaviour. /// /// \note if you inherit from exPlane, and implement your own Awake function, /// you need to override this and call base.Awake() in your Awake block. // ------------------------------------------------------------------ protected void Awake() { // if (camera_ == null) { camera_ = Camera.main; } // if (camera_ != null) { spriteMng_ = camera_.GetComponent <exSpriteMng>(); if (spriteMng_ == null) { spriteMng_ = camera_.gameObject.AddComponent <exSpriteMng>(); } } // meshFilter_ = GetComponent <MeshFilter>(); // collisionHelper_ = GetComponent <exCollisionHelper>(); if (collisionHelper_) { collisionHelper_.plane = this; } // DISABLE: no reason to do this { // if ( clippingPlane ) // clippingPlane.AddPlane(this); // } DISABLE end }
/////////////////////////////////////////////////////////////////////////////// // functions /////////////////////////////////////////////////////////////////////////////// // ------------------------------------------------------------------ // Desc: // ------------------------------------------------------------------ void OnEnable() { if (target != curEdit) { curEdit = target as exCollisionHelper; // get collision type if (curEdit.GetComponent <BoxCollider>() != null) { collisionType = exCollisionHelper.CollisionType.Boxed; } else if (curEdit.GetComponent <MeshCollider>() != null) { collisionType = exCollisionHelper.CollisionType.Mesh; } else { collisionType = exCollisionHelper.CollisionType.None; } } }
/////////////////////////////////////////////////////////////////////////////// // functions /////////////////////////////////////////////////////////////////////////////// // ------------------------------------------------------------------ /// Awake functoin inherit from MonoBehaviour. /// /// \note if you inherit from exPlane, and implement your own Awake function, /// you need to override this and call base.Awake() in your Awake block. // ------------------------------------------------------------------ protected void Awake () { // if ( camera_ == null ) camera_ = Camera.main; // if ( camera_ != null ) { spriteMng_ = camera_.GetComponent<exSpriteMng>(); if ( spriteMng_ == null ) spriteMng_ = camera_.gameObject.AddComponent<exSpriteMng>(); } // meshFilter_ = GetComponent<MeshFilter>(); // collisionHelper_ = GetComponent<exCollisionHelper>(); if ( collisionHelper_ ) collisionHelper_.plane = this; }
/////////////////////////////////////////////////////////////////////////////// // functions /////////////////////////////////////////////////////////////////////////////// // ------------------------------------------------------------------ /// Awake functoin inherit from MonoBehaviour. /// /// \note if you inherit from exPlane, and implement your own Awake function, /// you need to override this and call base.Awake() in your Awake block. // ------------------------------------------------------------------ protected void Awake() { // if ( camera_ == null ) camera_ = Camera.main; // if ( camera_ != null ) { spriteMng_ = camera_.GetComponent<exSpriteMng>(); if ( spriteMng_ == null ) spriteMng_ = camera_.gameObject.AddComponent<exSpriteMng>(); } // meshFilter_ = GetComponent<MeshFilter>(); // collisionHelper_ = GetComponent<exCollisionHelper>(); if ( collisionHelper_ ) collisionHelper_.plane = this; // DISABLE: no reason to do this { // if ( clippingPlane ) // clippingPlane.AddPlane(this); // } DISABLE end }
// ------------------------------------------------------------------ // Desc: // ------------------------------------------------------------------ public override void OnInspectorGUI() { // ======================================================== // exPlane GUI // ======================================================== base.OnInspectorGUI(); GUILayout.Space(20); EditorGUIUtility.LookLikeInspector(); ++EditorGUI.indentLevel; // ======================================================== // Collision Type // ======================================================== GUI.enabled = !inAnimMode; EditorGUIUtility.LookLikeControls(); CollisionType newCollisionType = (CollisionType)EditorGUILayout.EnumPopup("Collision Type", collisionType, GUILayout.Width(200)); EditorGUIUtility.LookLikeInspector(); GUI.enabled = true; // if (newCollisionType != collisionType) { collisionType = newCollisionType; Collider myCollider = editSpriteBase.GetComponent <Collider>(); if (myCollider != null) { if (myCollider is MeshCollider) { Object.DestroyImmediate((myCollider as MeshCollider).sharedMesh, true); } Object.DestroyImmediate(myCollider, true); } switch (collisionType) { case CollisionType.None: break; case CollisionType.Boxed: editSpriteBase.gameObject.AddComponent <BoxCollider>(); break; case CollisionType.Mesh: editSpriteBase.gameObject.AddComponent <MeshCollider>(); break; } if (editSpriteBase.collisionHelper) { editSpriteBase.collisionHelper.UpdateCollider(); } } GUILayout.BeginHorizontal(); // ======================================================== // use collision helper // ======================================================== GUILayout.Space(15); GUI.enabled = !inAnimMode; exCollisionHelper compCollisionHelper = editSpriteBase.collisionHelper; bool hasCollisionHelperComp = compCollisionHelper != null; bool useCollisionHelper = GUILayout.Toggle(hasCollisionHelperComp, "Use Collision Helper"); if (useCollisionHelper != hasCollisionHelperComp) { if (useCollisionHelper) { compCollisionHelper = editSpriteBase.gameObject.AddComponent <exCollisionHelper>(); compCollisionHelper.plane = editSpriteBase; compCollisionHelper.UpdateCollider(); } else { Object.DestroyImmediate(compCollisionHelper, true); } GUI.changed = true; } GUI.enabled = true; // ======================================================== // sync button // ======================================================== GUILayout.FlexibleSpace(); GUI.enabled = (isPrefab == false) && (useCollisionHelper == false); if (GUILayout.Button("Sync")) { editSpriteBase.UpdateColliderSize(0.2f); } GUI.enabled = true; GUILayout.EndHorizontal(); // ======================================================== // use pixel perfect // ======================================================== GUILayout.BeginHorizontal(); GUILayout.Space(15); GUI.enabled = !inAnimMode; exPixelPerfect compPixelPerfect = editSpriteBase.GetComponent <exPixelPerfect>(); bool hasPixelPerfectComponent = compPixelPerfect != null; bool usePixelPerfect = GUILayout.Toggle(hasPixelPerfectComponent, "Use Pixel Perfect"); if (usePixelPerfect != hasPixelPerfectComponent) { if (usePixelPerfect) { editSpriteBase.gameObject.AddComponent <exPixelPerfect>(); } else { Object.DestroyImmediate(compPixelPerfect, true); } GUI.changed = true; } GUI.enabled = true; GUILayout.EndHorizontal(); // ======================================================== // scale // ======================================================== EditorGUIUtility.LookLikeControls(); editSpriteBase.scale = EditorGUILayout.Vector2Field("Scale", editSpriteBase.scale); EditorGUIUtility.LookLikeInspector(); // ======================================================== // HFlip, VFlip, Reset to Pixel Perfect // ======================================================== bool flip = false; bool newflip = false; GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); // DISABLE: the current version not allow I do this, just click "Use PixelPerfect" and re-click for the feature { // // reset to pixel perfect // if ( GUILayout.Button( "Reset to pixel perfect..." ) ) { // if ( editSprite != null ) { // editSprite.customSize = false; // } // editSpriteBase.MakePixelPerfect ( Camera.main, // PlayerSettings.defaultScreenWidth, // PlayerSettings.defaultScreenHeight ); // GUI.changed = true; // } // } DISABLE end // h-flip flip = Mathf.Sign(editSpriteBase.scale.x) < 0.0f; newflip = GUILayout.Toggle(flip, "H-Flip", GUI.skin.button); if (newflip != flip) { float s = newflip ? -1.0f : 1.0f; editSpriteBase.scale = new Vector2(s * Mathf.Abs(editSpriteBase.scale.x), editSpriteBase.scale.y); GUI.changed = true; } // v-flip flip = Mathf.Sign(editSpriteBase.scale.y) < 0.0f; newflip = GUILayout.Toggle(flip, "V-Flip", GUI.skin.button); if (newflip != flip) { float s = newflip ? -1.0f : 1.0f; editSpriteBase.scale = new Vector2(editSpriteBase.scale.x, s * Mathf.Abs(editSpriteBase.scale.y)); GUI.changed = true; } GUILayout.EndHorizontal(); // ======================================================== // shear // ======================================================== EditorGUIUtility.LookLikeControls(); editSpriteBase.shear = EditorGUILayout.Vector2Field("Shear", editSpriteBase.shear); EditorGUIUtility.LookLikeInspector(); // ======================================================== // check dirty // ======================================================== if (GUI.changed) { EditorUtility.SetDirty(editSpriteBase); } --EditorGUI.indentLevel; }
/////////////////////////////////////////////////////////////////////////////// // functions /////////////////////////////////////////////////////////////////////////////// // ------------------------------------------------------------------ // Desc: // ------------------------------------------------------------------ void OnEnable() { if ( target != curEdit ) { curEdit = target as exCollisionHelper; // get collision type if ( curEdit.GetComponent<BoxCollider>() != null ) { collisionType = exCollisionHelper.CollisionType.Boxed; } else if ( curEdit.GetComponent<MeshCollider>() != null ) { collisionType = exCollisionHelper.CollisionType.Mesh; } else { collisionType = exCollisionHelper.CollisionType.None; } } }