{"id":1601,"date":"2013-01-26T00:01:03","date_gmt":"2013-01-25T21:01:03","guid":{"rendered":"http:\/\/unitycoder.com\/blog\/?p=1601"},"modified":"2016-07-07T10:53:15","modified_gmt":"2016-07-07T02:53:15","slug":"save-mesh-created-by-script-in-editor-playmode","status":"publish","type":"post","link":"https:\/\/unitycoder.com\/blog\/2013\/01\/26\/save-mesh-created-by-script-in-editor-playmode\/","title":{"rendered":"Save Mesh Created by Script in Editor PlayMode"},"content":{"rendered":"<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1602\" data-permalink=\"https:\/\/unitycoder.com\/blog\/2013\/01\/26\/save-mesh-created-by-script-in-editor-playmode\/save_mesh_created_in_playmode\/\" data-orig-file=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/save_mesh_created_in_playmode.jpg?fit=432%2C431&amp;ssl=1\" data-orig-size=\"432,431\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"save_mesh_created_in_playmode\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/save_mesh_created_in_playmode.jpg?fit=432%2C431&amp;ssl=1\" class=\"alignnone size-medium wp-image-1602\" src=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/save_mesh_created_in_playmode-300x300.jpg?resize=300%2C300\" alt=\"save_mesh_created_in_playmode\" width=\"300\" height=\"300\" srcset=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/save_mesh_created_in_playmode.jpg?resize=300%2C300&amp;ssl=1 300w, https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/save_mesh_created_in_playmode.jpg?resize=150%2C150&amp;ssl=1 150w, https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/save_mesh_created_in_playmode.jpg?w=432&amp;ssl=1 432w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>Saving meshes (which were created by script)\u00a0 in editor playmode was surprisingly simple,<br \/>\nhttp:\/\/docs.unity3d.com\/Documentation\/ScriptReference\/AssetDatabase.CreateAsset.html<\/p>\n<p>&nbsp;<\/p>\n<p>Updated version:<\/p>\n<style>.gist table { margin-bottom: 0; }<\/style>\n<div style=\"tab-size: 8\" id=\"gist37533995\" class=\"gist\">\n<div class=\"gist-file\" translate=\"no\" data-color-mode=\"light\" data-light-theme=\"light\">\n<div class=\"gist-data\">\n<div class=\"js-gist-file-update-container js-task-list-container\">\n<div id=\"file-savemeshineditor-cs\" class=\"file my-2\">\n<div itemprop=\"text\"\n      class=\"Box-body p-0 blob-wrapper data type-c  \"\n      style=\"overflow: auto\" tabindex=\"0\" role=\"region\"\n      aria-label=\"SaveMeshInEditor.cs content, created by unitycoder on 02:52AM on July 07, 2016.\"\n    ><\/p>\n<div class=\"js-check-hidden-unicode js-blob-code-container blob-code-content\">\n<p>  <template class=\"js-file-alert-template\"><\/p>\n<div data-view-component=\"true\" class=\"flash flash-warn flash-full d-flex flex-items-center\">\n  <svg aria-hidden=\"true\" data-component=\"Octicon\" height=\"16\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-alert\">\n    <path d=\"M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z\"><\/path>\n<\/svg><br \/>\n    <span><br \/>\n      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.<br \/>\n      <a class=\"Link--inTextBlock\" href=\"https:\/\/github.co\/hiddenchars\" target=\"_blank\">Learn more about bidirectional Unicode characters<\/a><br \/>\n    <\/span><\/p>\n<div data-view-component=\"true\" class=\"flash-action\">        <a href=\"{{ revealButtonHref }}\" data-view-component=\"true\" class=\"btn-sm btn\">    Show hidden characters<br \/>\n<\/a>\n<\/div>\n<\/div>\n<p><\/template><br \/>\n<template class=\"js-line-alert-template\"><br \/>\n  <span aria-label=\"This line has hidden Unicode characters\" data-view-component=\"true\" class=\"line-alert tooltipped tooltipped-e\"><br \/>\n    <svg aria-hidden=\"true\" data-component=\"Octicon\" height=\"16\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-alert\">\n    <path d=\"M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z\"><\/path>\n<\/svg><br \/>\n<\/span><\/template><\/p>\n<table data-hpc class=\"highlight tab-size js-file-line-container\" data-tab-size=\"4\" data-paste-markdown-skip data-tagsearch-path=\"SaveMeshInEditor.cs\">\n<tr>\n<td id=\"file-savemeshineditor-cs-L1\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"1\"><\/td>\n<td id=\"file-savemeshineditor-cs-LC1\" class=\"blob-code blob-code-inner js-file-line\">#if UNITY_EDITOR<\/td>\n<\/tr>\n<tr>\n<td id=\"file-savemeshineditor-cs-L2\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"2\"><\/td>\n<td id=\"file-savemeshineditor-cs-LC2\" class=\"blob-code blob-code-inner js-file-line\">using UnityEngine;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-savemeshineditor-cs-L3\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"3\"><\/td>\n<td id=\"file-savemeshineditor-cs-LC3\" class=\"blob-code blob-code-inner js-file-line\">using UnityEditor;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-savemeshineditor-cs-L4\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"4\"><\/td>\n<td id=\"file-savemeshineditor-cs-LC4\" class=\"blob-code blob-code-inner js-file-line\">\n<\/td>\n<\/tr>\n<tr>\n<td id=\"file-savemeshineditor-cs-L5\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"5\"><\/td>\n<td id=\"file-savemeshineditor-cs-LC5\" class=\"blob-code blob-code-inner js-file-line\">\/\/ Usage: Attach to gameobject, assign target gameobject (from where the mesh is taken), Run, Press savekey<\/td>\n<\/tr>\n<tr>\n<td id=\"file-savemeshineditor-cs-L6\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"6\"><\/td>\n<td id=\"file-savemeshineditor-cs-LC6\" class=\"blob-code blob-code-inner js-file-line\">\n<\/td>\n<\/tr>\n<tr>\n<td id=\"file-savemeshineditor-cs-L7\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"7\"><\/td>\n<td id=\"file-savemeshineditor-cs-LC7\" class=\"blob-code blob-code-inner js-file-line\">public class SaveMeshInEditor : MonoBehaviour<\/td>\n<\/tr>\n<tr>\n<td id=\"file-savemeshineditor-cs-L8\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"8\"><\/td>\n<td id=\"file-savemeshineditor-cs-LC8\" class=\"blob-code blob-code-inner js-file-line\">{<\/td>\n<\/tr>\n<tr>\n<td id=\"file-savemeshineditor-cs-L9\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"9\"><\/td>\n<td id=\"file-savemeshineditor-cs-LC9\" class=\"blob-code blob-code-inner js-file-line\">\n<\/td>\n<\/tr>\n<tr>\n<td id=\"file-savemeshineditor-cs-L10\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"10\"><\/td>\n<td id=\"file-savemeshineditor-cs-LC10\" class=\"blob-code blob-code-inner js-file-line\">    public KeyCode saveKey = KeyCode.F12;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-savemeshineditor-cs-L11\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"11\"><\/td>\n<td id=\"file-savemeshineditor-cs-LC11\" class=\"blob-code blob-code-inner js-file-line\">    public string saveName = &quot;SavedMesh&quot;;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-savemeshineditor-cs-L12\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"12\"><\/td>\n<td id=\"file-savemeshineditor-cs-LC12\" class=\"blob-code blob-code-inner js-file-line\">    public Transform selectedGameObject;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-savemeshineditor-cs-L13\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"13\"><\/td>\n<td id=\"file-savemeshineditor-cs-LC13\" class=\"blob-code blob-code-inner js-file-line\">\n<\/td>\n<\/tr>\n<tr>\n<td id=\"file-savemeshineditor-cs-L14\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"14\"><\/td>\n<td id=\"file-savemeshineditor-cs-LC14\" class=\"blob-code blob-code-inner js-file-line\">    void Update()<\/td>\n<\/tr>\n<tr>\n<td id=\"file-savemeshineditor-cs-L15\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"15\"><\/td>\n<td id=\"file-savemeshineditor-cs-LC15\" class=\"blob-code blob-code-inner js-file-line\">    {<\/td>\n<\/tr>\n<tr>\n<td id=\"file-savemeshineditor-cs-L16\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"16\"><\/td>\n<td id=\"file-savemeshineditor-cs-LC16\" class=\"blob-code blob-code-inner js-file-line\">        if (Input.GetKeyDown(saveKey))<\/td>\n<\/tr>\n<tr>\n<td id=\"file-savemeshineditor-cs-L17\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"17\"><\/td>\n<td id=\"file-savemeshineditor-cs-LC17\" class=\"blob-code blob-code-inner js-file-line\">        {<\/td>\n<\/tr>\n<tr>\n<td id=\"file-savemeshineditor-cs-L18\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"18\"><\/td>\n<td id=\"file-savemeshineditor-cs-LC18\" class=\"blob-code blob-code-inner js-file-line\">            SaveAsset();<\/td>\n<\/tr>\n<tr>\n<td id=\"file-savemeshineditor-cs-L19\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"19\"><\/td>\n<td id=\"file-savemeshineditor-cs-LC19\" class=\"blob-code blob-code-inner js-file-line\">        }<\/td>\n<\/tr>\n<tr>\n<td id=\"file-savemeshineditor-cs-L20\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"20\"><\/td>\n<td id=\"file-savemeshineditor-cs-LC20\" class=\"blob-code blob-code-inner js-file-line\">    }<\/td>\n<\/tr>\n<tr>\n<td id=\"file-savemeshineditor-cs-L21\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"21\"><\/td>\n<td id=\"file-savemeshineditor-cs-LC21\" class=\"blob-code blob-code-inner js-file-line\">\n<\/td>\n<\/tr>\n<tr>\n<td id=\"file-savemeshineditor-cs-L22\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"22\"><\/td>\n<td id=\"file-savemeshineditor-cs-LC22\" class=\"blob-code blob-code-inner js-file-line\">    void SaveAsset()<\/td>\n<\/tr>\n<tr>\n<td id=\"file-savemeshineditor-cs-L23\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"23\"><\/td>\n<td id=\"file-savemeshineditor-cs-LC23\" class=\"blob-code blob-code-inner js-file-line\">    {<\/td>\n<\/tr>\n<tr>\n<td id=\"file-savemeshineditor-cs-L24\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"24\"><\/td>\n<td id=\"file-savemeshineditor-cs-LC24\" class=\"blob-code blob-code-inner js-file-line\">        var mf = selectedGameObject.GetComponent&lt;MeshFilter&gt;();<\/td>\n<\/tr>\n<tr>\n<td id=\"file-savemeshineditor-cs-L25\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"25\"><\/td>\n<td id=\"file-savemeshineditor-cs-LC25\" class=\"blob-code blob-code-inner js-file-line\">        if (mf)<\/td>\n<\/tr>\n<tr>\n<td id=\"file-savemeshineditor-cs-L26\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"26\"><\/td>\n<td id=\"file-savemeshineditor-cs-LC26\" class=\"blob-code blob-code-inner js-file-line\">        {<\/td>\n<\/tr>\n<tr>\n<td id=\"file-savemeshineditor-cs-L27\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"27\"><\/td>\n<td id=\"file-savemeshineditor-cs-LC27\" class=\"blob-code blob-code-inner js-file-line\">            var savePath = &quot;Assets\/&quot; + saveName + &quot;.asset&quot;;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-savemeshineditor-cs-L28\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"28\"><\/td>\n<td id=\"file-savemeshineditor-cs-LC28\" class=\"blob-code blob-code-inner js-file-line\">            Debug.Log(&quot;Saved Mesh to:&quot; + savePath);<\/td>\n<\/tr>\n<tr>\n<td id=\"file-savemeshineditor-cs-L29\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"29\"><\/td>\n<td id=\"file-savemeshineditor-cs-LC29\" class=\"blob-code blob-code-inner js-file-line\">            AssetDatabase.CreateAsset(mf.mesh, savePath);<\/td>\n<\/tr>\n<tr>\n<td id=\"file-savemeshineditor-cs-L30\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"30\"><\/td>\n<td id=\"file-savemeshineditor-cs-LC30\" class=\"blob-code blob-code-inner js-file-line\">        }<\/td>\n<\/tr>\n<tr>\n<td id=\"file-savemeshineditor-cs-L31\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"31\"><\/td>\n<td id=\"file-savemeshineditor-cs-LC31\" class=\"blob-code blob-code-inner js-file-line\">    }<\/td>\n<\/tr>\n<tr>\n<td id=\"file-savemeshineditor-cs-L32\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"32\"><\/td>\n<td id=\"file-savemeshineditor-cs-LC32\" class=\"blob-code blob-code-inner js-file-line\">}<\/td>\n<\/tr>\n<tr>\n<td id=\"file-savemeshineditor-cs-L33\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"33\"><\/td>\n<td id=\"file-savemeshineditor-cs-LC33\" class=\"blob-code blob-code-inner js-file-line\">#endif<\/td>\n<\/tr>\n<\/table>\n<\/div><\/div>\n<\/p><\/div>\n<\/div><\/div>\n<div class=\"gist-meta\">\n        <a href=\"https:\/\/gist.github.com\/unitycoder\/2137d3f3015a7b39f1092b55941092d9\/raw\/cea653e0b0dce828a652c64cf4206ac4cd2a6055\/SaveMeshInEditor.cs\" style=\"float:right\" class=\"Link--inTextBlock\">view raw<\/a><br \/>\n        <a href=\"https:\/\/gist.github.com\/unitycoder\/2137d3f3015a7b39f1092b55941092d9#file-savemeshineditor-cs\" class=\"Link--inTextBlock\"><br \/>\n          SaveMeshInEditor.cs<br \/>\n        <\/a><br \/>\n        hosted with &#10084; by <a class=\"Link--inTextBlock\" href=\"https:\/\/github.com\">GitHub<\/a>\n      <\/div>\n<\/p><\/div>\n<\/div>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>old version:<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\n\r\nusing UnityEngine;\r\nusing UnityEditor;\r\nusing System.Collections;\r\n\r\n\/\/ assetSaver v1.0 - attach this script to any object, assign the target transfrom (from where the mesh is saved), give some filename. Play. Then press F to save.\r\n\r\npublic class saveMesh : MonoBehaviour\r\n{\r\n\r\npublic string name1;\r\npublic Transform obj1;\r\n\r\nvoid Update ()\r\n{\r\nif (Input.GetKeyDown(&quot;f&quot;))\r\n{\r\nSaveAsset();\r\n}\r\n}\r\n\r\nvoid SaveAsset()\r\n{\r\nMesh m1 = obj1.GetComponent&lt;MeshFilter&gt;().mesh;\r\nAssetDatabase.CreateAsset(m1, &quot;Assets\/&quot; + name1 + &quot;.asset&quot;); \/\/ saves to &quot;assets\/&quot;\r\n\/\/AssetDatabase.SaveAssets(); \/\/ not needed?\r\n}\r\n\r\n}\r\n\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Saving meshes (which were created by script)\u00a0 in editor playmode was surprisingly simple, http:\/\/docs.unity3d.com\/Documentation\/ScriptReference\/AssetDatabase.CreateAsset.html &nbsp; Updated version: This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1602,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[23,3],"tags":[402,404,358,5,406,403,405,407,189],"class_list":["post-1601","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-functions-unity3d","category-unity3d","tag-asset","tag-created","tag-editor","tag-mesh","tag-playmode","tag-runtime","tag-save","tag-saving","tag-script"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/save_mesh_created_in_playmode.jpg?fit=432%2C431&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/p1KTaT-pP","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/posts\/1601","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/comments?post=1601"}],"version-history":[{"count":6,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/posts\/1601\/revisions"}],"predecessor-version":[{"id":4302,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/posts\/1601\/revisions\/4302"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/media\/1602"}],"wp:attachment":[{"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/media?parent=1601"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/categories?post=1601"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/tags?post=1601"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}