Unity运行时保存prefab的方法一则

unity编辑器在运行状态时,prefab的apply按钮就消失了,其实此时代码访问的话是有效的。

代码如下,将会给transform的右键增加一个save prefab的选项。

using UnityEngine;
using UnityEditor;
using System.Collections;

static public class PrefabExtendTools
{

    [MenuItem("CONTEXT/Transform/SavePrefab")]
    static public void SavePrefab()
    {
        GameObject source = PrefabUtility.GetPrefabParent (Selection.activeGameObject) as GameObject;
        if(source == null) return;
        string prefabPath = AssetDatabase.GetAssetPath (source).ToLower ();
        if(prefabPath.EndsWith(".prefab") == false) return;
        PrefabUtility.ReplacePrefab (Selection.activeGameObject, source, ReplacePrefabOptions.ConnectToPrefab | ReplacePrefabOptions.ReplaceNameBased);
    }
}

时间: 2024-10-11 10:59:43

Unity运行时保存prefab的方法一则的相关文章

Jvm(14.2),运行时数据---堆,栈,方法区

一,我们首先来看张图 二,代码来解释 先了解具体的概念: JAVA的JVM的内存可分为3个区:堆(heap).栈(stack)和方法区(method) 堆区: 1.存储的全部是对象,每个对象都包含一个与之对应的class的信息.(class的目的是得到操作指令) 2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身栈区: 1.每个线程包含一个栈区,栈中只保存基础数据类型的对象和自定义对象的引用(不是对 象),对象都存放在堆区中 2.每个栈中的数据(原始类

iOS 运行时添加属性和方法

原文链接http://blog.csdn.net/meegomeego/article/details/18356169第一种:runtime.h里的方法 BOOL class_addProperty(Class cls,constchar*name,constobjc_property_attribute_t*attributes,unsignedint attributeCount) #include <objc/runtime.h> #import <Foundation/Foun

maven的web工程下用pom引入jdbc包,运行时仍显示classnotfoundexception方法

今天在公司培训,做一个简单的servlet程序,需要使用tomcat的web工程. 我先创建maven工程,右键添加web项目属性,于是愉快的开始写servlet,其中有做数据库于是要使用到第三方的jdbc驱动,于是我就用pom.xml引入,引入部分如下: <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version&

Unity运行时检测Altas使用情况

UI贴图在游戏中内存大小中占的分量非常非常大,尤其对于前期对UI没有规划的项目,无论是包量还是内存大小都是需要花费很多时间去优化.如果涉及到战斗场景和逻辑场景的情况下,常用的做法就是把两个场景使用的atlas严格的分离开,这样可以减少运行时内存,特别是在战斗中,内存增加的比较厉害.OK,如果项目前期这方面的事情考虑比较周全.规则比较详细.执行也比较到位,后期可能就做这个事情就比较简答.那如果出现战斗中引用不该有的atlas怎么办?UI太多的情况下,逐个排除太麻烦,尤其是不在UI中,只是静态引进的

Objective-C Runtime 运行时之三:方法与消息

基础数据类型 SEL SEL又叫选择器,是表示一个方法的selector的指针,其定义如下: typedef struct objc_selector *SEL; objc_selector结构体的详细定义没有在<objc/runtime.h>头文件中找到.方法的selector用于表示运行时方法的名字.Objective-C在编译时,会依据每一个方法的名字.参数序列,生成一个唯一的整型标识(Int类型的地址),这个标识就是SEL.如下代码所示: 1 2 SEL sel1 = @selecto

[ObjectC]Runtime运行时之三:方法与消息

这一章,我们就要开始讨论Runtime中最有意思的一部分:消息处理机制.我们将详细讨论消息的发送及消息的转发. 基础数据类型 SEL SEL又叫选择器,是表示一个方法的selector的指针,其定义如下: typedef struct objc_selector *SEL; objc_selector结构体的详细定义没有在<objc/runtime.h>头文件中找到.方法的selector用于表示运行时方法的名字.Objective-C在编译时,会依据每一个方法的名字.参数序列,生成一个唯一的

Objective-C Runtime 运行时之三:方法与消息(转载)

前面我们讨论了Runtime中对类和对象的处理,及对成员变量与属性的处理.这一章,我们就要开始讨论Runtime中最有意思的一部分:消息处理机制.我们将详细讨论消息的发送及消息的转发.不过在讨论消息之前,我们先来了解一下与方法相关的一些内容. 基础数据类型 SEL SEL又叫选择器,是表示一个方法的selector的指针,其定义如下: typedef struct objc_selector *SEL; objc_selector结构体的详细定义没有在<objc/runtime.h>头文件中找

String放入运行时常量池的时机与String.intern()方法解惑

运行时常量池概述 Java运行时常量池中主要存放两大类常量:字面量和符号引用.字面量比较接近于Java语言层面的常量概念,如文本字符串.声明为final的常量值等. 而符号引用则属于编译原理方面的概念,包括了下面三类常量: - 类和接口的全限定名(包名+类名) - 字段的名称和描述符 - 方法的名称和描述符 运行时常量池位置 运行时常量池在JDK1.6及之前版本的JVM中是方法区的一部分,而在HotSpot虚拟机中方法区放在了"永久代(Permanent Generation)".所以

[转]Objective-C Runtime 运行时之三:方法与消息

前面我们讨论了Runtime中对类和对象的处理,及对成员变量与属性的处理.这一章,我们就要开始讨论Runtime中最有意思的一部分:消息处理机制.我们将详细讨论消息的发送及消息的转发.不过在讨论消息之前,我们先来了解一下与方法相关的一些内容. 基础数据类型 SEL SEL又叫选择器,是表示一个方法的selector的指针,其定义如下: 1 typedef struct objc_selector *SEL; objc_selector结构体的详细定义没有在头文件中找到.方法的selector用于