Unity游戏开发之怎么在代码里面引用到Inspector里面显示的值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity游戏开发之怎么在代码里面引用到Inspector里面显示的值相关的知识,希望对你有一定的参考价值。

参考技术A 步骤如下:

1、查找是否有相应脚本的Editor文件。比如你想看的是UILabel是否有Editor文件,直接在代码里面全局搜索:[CustomEditor(typeof(UILabel))]
2、会发现UILabel的Editor文件是UILabelInspector。在这个脚本里面搜索(就是红框里面写的):Dimensions
3、会发现没有,但是UILabelInspector继承自UIWidgetInspector,所以你进入到UIWidgetInspector继续搜索:Dimensions
4、会看到有一句:NGUIEditorTools.DrawProperty("Dimensions", serializedObject, "mWidth", GUILayout.MinWidth(100f));

5、这个是NGUI自带的渲染属性的函数,跟进去会发现,其实mWidth就是上面图片中43所对应的属性,所以说,你要找的是mWidth(还有紧接着的mHeight);

6、因为是在UIWidgetInspector里面找到的mWidth,所以我们去UIWidget里面查找mWidth属性

7、在UIWidget里面搜索mWidth,会发现有个public属性是width,它负责修改mWidth,所以想在代码里面修改43的值,就直接用xxx.width = 21 这样的语句就可以了(xxx是任意UILabel)。本回答被提问者和网友采纳
参考技术B 请问问题解决了吗

想在unity里面做游戏的技能

想做出来玩家捡起一个技能,比如说磁铁,它吸走了金币,然后一定时间后这个技能消失了。应该怎么写呢,求大佬帮忙

不知道你会不会用碰撞器呢,如果会用的话,你可以给玩家添加一个子物体,并给这个子物体添加一个球形碰撞器设置为trigger,然后调整碰撞器的scale到你希望捡到金币的最大距离。

该物体上挂在一个脚本,内容如下:
//技能时间
private float skillTime;
//在update里做一下计时器
private void Update()

if (skillTime < 5)

skillTime += Time.deltaTime;

else

skillTime = 0;
gameObject.SetActive(false);


//金币列表
private List<GameObject> goldlist = new List<GameObject>();
private void OnTriggerEnter(Collider other)

//如果碰撞物是金币
if (other.tag == "goldCoin")

//如果金币列表不包含这个金币
if (!goldlist.Contains(other.gameObject))

//把这个金币添加进金币列表
goldlist.Add(other.gameObject);
//给这个金币添加一个动画(这里用了DOTween,是个插件,可以在assetstore上下载,免费的)
other.transform.DOMove(transform.position, 0.1f).OnComplete(() =>

//在动画完成时把这个金币从金币表中该删除
goldlist.Remove(other.gameObject);
//删除这个金币物体
DestroyImmediate(other.gameObject);
);



然后设置你的金币的tag为“goldCoin”
参考技术A 行!!!追问

大佬行是什么意思

以上是关于Unity游戏开发之怎么在代码里面引用到Inspector里面显示的值的主要内容,如果未能解决你的问题,请参考以下文章

想在unity里面做游戏的技能

Unity3D游戏开发之简单的碰撞检測

怎么用unity5.3.4做一个2d游戏

unity值得学吗

自学游戏开发要怎么开始学习?

Unity3D性能优化之内存