开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

问答求助

关注:471

当前位置:游戏蛮牛 技术专区 问答求助

_____________________________________________________________________________________________________________
问答求助版块规则:

  1、问题尽量描述清楚
      2、代码要放在代码块里
      3、附件最好放到云盘,然后把链接放到TXT文档里,上传TXT文档。【最好没有附件,你懂得】
      4、本版块回复不得无意义,如:顶、呵呵、不错......以及擦边!【真的会扣分的哦】严重者,封IP!
      5、问题得到解决,请选择最佳答案。
      6、若问题是你自己解决了,可以联系管理员,返还蛮牛币,写下你的答案,另有蛮牛币奖赏。
_____________________________________________________________________________________________________________
查看: 774|回复: 9

[基本操作] 如何通过代码改变Texture Type?

[复制链接]  [移动端链接]
5熟悉之中
659/1000
排名
4614
昨日变化
30

15

主题

129

帖子

659

积分

Rank: 5Rank: 5

UID
225323
好友
1
蛮牛币
545
威望
0
注册时间
2017-6-5
在线时间
273 小时
最后登录
2017-10-18
发表于 2017-8-6 21:22:51 | 显示全部楼层 |阅读模式
10蛮牛币
本帖最后由 RevoYu 于 2017-8-7 15:40 编辑

RT
QQ图片20170806212213.png
01.png

回复

使用道具 举报

6蛮牛粉丝
1287/1500
排名
1304
昨日变化
4

6

主题

97

帖子

1287

积分

Rank: 6Rank: 6Rank: 6

UID
55593
好友
3
蛮牛币
1753
威望
0
注册时间
2014-11-15
在线时间
452 小时
最后登录
2017-10-18
发表于 2017-8-6 21:22:52 | 显示全部楼层
TextureImporter importer = (TextureImporter)TextureImporter.GetAtPath(path);   //path为图片所在路径
importer.textureType = TextureImportType.Advanced;

回复

使用道具 举报

5熟悉之中
659/1000
排名
4614
昨日变化
30

15

主题

129

帖子

659

积分

Rank: 5Rank: 5

UID
225323
好友
1
蛮牛币
545
威望
0
注册时间
2017-6-5
在线时间
273 小时
最后登录
2017-10-18
 楼主| 发表于 2017-8-7 15:42:15 | 显示全部楼层
KanaNishino 发表于 2017-8-7 10:20
TextureImporter importer = (TextureImporter)TextureImporter.GetAtPath(path);   //path为图片所在路径
...

非常感谢你的帮助!不知道能否帮忙看一下为什么在实际使用过程中一直出现空引用?

在第一楼我已经放出import这里出现空引用的问题了。但自己不太能找的到原因。希望你这边能够看一下,谢谢!

回复

使用道具 举报

7日久生情
1565/5000
排名
1976
昨日变化
1

11

主题

346

帖子

1565

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
148830
好友
3
蛮牛币
2411
威望
0
注册时间
2016-5-17
在线时间
650 小时
最后登录
2017-10-18
发表于 2017-8-8 10:07:31 | 显示全部楼层
RevoYu 发表于 2017-8-7 15:42
非常感谢你的帮助!不知道能否帮忙看一下为什么在实际使用过程中一直出现空引用?

在第一楼我已经放出im ...

所以为什么出现了空引用

我一个人走走停停冷暖自知自始自终自给
回复

使用道具 举报

6蛮牛粉丝
1287/1500
排名
1304
昨日变化
4

6

主题

97

帖子

1287

积分

Rank: 6Rank: 6Rank: 6

UID
55593
好友
3
蛮牛币
1753
威望
0
注册时间
2014-11-15
在线时间
452 小时
最后登录
2017-10-18
发表于 2017-8-8 10:16:50 | 显示全部楼层
你的整个类代码是怎样写的?发给我看下,需要使用UnityEditor命名空间,并且把脚本放在Editor文件夹下

回复

使用道具 举报

6蛮牛粉丝
1287/1500
排名
1304
昨日变化
4

6

主题

97

帖子

1287

积分

Rank: 6Rank: 6Rank: 6

UID
55593
好友
3
蛮牛币
1753
威望
0
注册时间
2014-11-15
在线时间
452 小时
最后登录
2017-10-18
发表于 2017-8-8 10:18:27 | 显示全部楼层
RevoYu 发表于 2017-8-7 15:42
非常感谢你的帮助!不知道能否帮忙看一下为什么在实际使用过程中一直出现空引用?

在第一楼我已经放出im ...

你可以断点检查下是那个地方为空,如果impoter为空的话,可以检查下GetAtPath(path)里面的path路径是否正确
[发帖际遇]: KanaNishino 捡了钱没交公 蛮牛币 降了 3 . 幸运榜 / 衰神榜

回复

使用道具 举报

6蛮牛粉丝
1287/1500
排名
1304
昨日变化
4

6

主题

97

帖子

1287

积分

Rank: 6Rank: 6Rank: 6

UID
55593
好友
3
蛮牛币
1753
威望
0
注册时间
2014-11-15
在线时间
452 小时
最后登录
2017-10-18
发表于 2017-8-8 10:49:48 | 显示全部楼层
using UnityEngine;
using System.Collections;
using UnityEditor;

public class ChangeTextureType : MonoBehaviour {

    [MenuItem("Tools/设置TextureType")]
    static void changeType()
    {

        foreach (Texture2D tx in Selection.objects)
        {
            string path = AssetDatabase.GetAssetPath(tx);
            TextureImporter import = (TextureImporter)TextureImporter.GetAtPath(path);
            import.textureType = TextureImporterType.Advanced;
        }

    }
}
把这个脚本放在Editor文件夹下,然后选中你Project视图里面的图片资源,然后点击Tools下的设置TextureType就可以改成图片的类型了(图片资源可以多选)

回复

使用道具 举报

5熟悉之中
659/1000
排名
4614
昨日变化
30

15

主题

129

帖子

659

积分

Rank: 5Rank: 5

UID
225323
好友
1
蛮牛币
545
威望
0
注册时间
2017-6-5
在线时间
273 小时
最后登录
2017-10-18
 楼主| 发表于 2017-8-8 18:51:50 | 显示全部楼层
KanaNishino 发表于 2017-8-8 10:49
using UnityEngine;
using System.Collections;
using UnityEditor;

非常感谢你的帮助,不过我想实现的是在项目运行过程中通过代码修改Texture类型。

具体空引用异常你可以从我第一楼的截图中的端点调试看到。

是import== null。路径是获取到了,我不是很确定extureImporter.GetAtPath()的方法所读取的路径是否需要文件名后缀,所以我两个路径都尝试过了,一个带.png的,一个不带的。
不过不管哪一个都在import的时候提示空引用。以下为代码:

回复

使用道具 举报

5熟悉之中
659/1000
排名
4614
昨日变化
30

15

主题

129

帖子

659

积分

Rank: 5Rank: 5

UID
225323
好友
1
蛮牛币
545
威望
0
注册时间
2017-6-5
在线时间
273 小时
最后登录
2017-10-18
 楼主| 发表于 2017-8-8 18:53:03 | 显示全部楼层
[AppleScript] 纯文本查看 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;

public class Test : MonoBehaviour
{
	void Start () 
    {
        string path = Application.dataPath + "/Materials/gross";      
        TextureImporter importer = TextureImporter.GetAtPath(path) as TextureImporter;
        importer.textureType  = TextureImporterType.Sprite;
	}
}

回复

使用道具 举报

6蛮牛粉丝
1287/1500
排名
1304
昨日变化
4

6

主题

97

帖子

1287

积分

Rank: 6Rank: 6Rank: 6

UID
55593
好友
3
蛮牛币
1753
威望
0
注册时间
2014-11-15
在线时间
452 小时
最后登录
2017-10-18
发表于 2017-8-8 19:03:19 | 显示全部楼层
RevoYu 发表于 2017-8-8 18:53
[mw_shl_code=applescript,true]using System.Collections;
using System.Collections.Generic;
using Unit ...

不妨你说下你的具体需求是怎样的吧

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

快速回复 返回顶部 返回列表