Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用随机变量实例化scriptableobject_C#_Unity3d_Scriptable Object - Fatal编程技术网

C# 用随机变量实例化scriptableobject

C# 用随机变量实例化scriptableobject,c#,unity3d,scriptable-object,C#,Unity3d,Scriptable Object,我刚刚开始使用scriptableobject,我正在尝试实例化/创建一个非常基本的scriptableobject的实例,它有4行数组 我试图实例化我创建的一个scriptableobject,每次创建它时,它都会随机化变量 使用系统集合; 使用System.Collections.Generic; 使用UnityEngine; [CreateAssetMenu(fileName=“新建角色”,menuName=“角色创建/玩家单位”)] 公共类CharStats:ScriptableObje

我刚刚开始使用scriptableobject,我正在尝试实例化/创建一个非常基本的scriptableobject的实例,它有4行数组

我试图实例化我创建的一个scriptableobject,每次创建它时,它都会随机化变量

使用系统集合;
使用System.Collections.Generic;
使用UnityEngine;
[CreateAssetMenu(fileName=“新建角色”,menuName=“角色创建/玩家单位”)]
公共类CharStats:ScriptableObject
{
[序列化字段]
公共字符串[]字符名;
公共字符串[]字符描述;
公共字符串[]charSin;
公共精灵[]charIcon;
}

我所做的更改是在一个scriptableobject的inspector内部进行的,每次我创建一个新的scriptableobject时,只有他的内部变量会更改。有可能实现吗?

好的,所以我设法创建了一些可能不是正确的方法,但是在按下一个键(现在测试)之后,它用一个随机图标实例化了我的ScriptableObjects。我会添加3个脚本,坏名字,因为它只用于测试,(测试-它的脚本位于空的游戏对象上,参考我的scriptableobject,测试2-它的脚本位于我用scriptableobject实例化的预置上)

使用系统;
使用系统集合;
使用System.Collections.Generic;
使用UnityEngine;
使用Random=UnityEngine.Random;
公共类测试2:单一行为
{
//公共脚本对象人;
公共CharStats charSats;
公共雪碧雪碧2;
私人喷壶;
私有void Start()
{
spriteRender=GetComponent();
GetRandomSprite();
}
公共精灵GetRandomSprite()
{
int randomIndex=Random.Range(0,charSats.charIcon.Length);
Log(charSats.charIcon[randomIndex]);
if(sprite2==null)
{
sprite2=charSats.charIcon[随机索引];
spriteRender.sprite=sprite2;
}
返回charSats.charIcon[随机索引];
}

}
是的,这绝对可行。您将制作一个编辑器工具,用于创建和序列化新对象。创建一个包含所有选项的静态数组,随机化当前对象选择的索引并创建它。当前设置正在存储每个对象中的所有数组。我不会这么做,除非你只想对每个对象中的原始数据进行随机排序。如果你想要一个例子,我可以添加一个。谢谢你的快速评论,我想看一个例子,我不确定我得到了基本的想法。不清楚你的意思。每个对象都有一个构造函数。您始终可以向该构造函数添加代码,以调用
Random
类来生成随机数,然后使用这些数字创建符合您内心内容的随机数据。到目前为止你做了什么研究?你试过什么?你具体需要什么帮助?当然我可以加一个。只是为了澄清一下,您想从您定义的列表中生成一个带有随机名称、描述、sin和精灵图标的ScriptableObject,对吗?现在,您有一个ScriptableObject,每个类型都有数组,但您很可能只需要每个对象中的一个,而不是整个数组,对吗?是的,您是正确的(我可以说,就像图像生成一个人使用其中的一个变量一样)