首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用随机变量实例化脚本对象

用随机变量实例化脚本对象
EN

Stack Overflow用户
提问于 2021-06-01 17:18:33
回答 1查看 767关注 0票数 0

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

我正在尝试实例化我创建的一个脚本对象,每次创建它时,他都会随机化他的变量

代码语言:javascript
复制
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

[CreateAssetMenu(fileName = "New Character",menuName = "Character Creation/Player Units")]
public class CharStats : ScriptableObject
{
    [SerializeField]
    public string [] charName;
    public string [] charDescription;
    public string [] charSin;
    public Sprite [] charIcon;
}

我正在为一个脚本对象在检查器中所做的更改,只有他的内部变量会在每次我创建新的变量时发生变化。这是可能的吗?

EN

回答 1

Stack Overflow用户

发布于 2021-06-01 21:00:05

好的,所以我设法创建一些东西可能不是正确的方法,但是在按下一个键(目前正在测试)之后,它用我现在设置的随机图标实例化了我的scriptableobjectwith。我会添加3个脚本,因为它只用于测试,因为它只用于测试(测试-它的脚本-它的脚本坐在空的游戏对象上引用我的脚本对象,测试2-它的脚本,它的脚本,坐在预制板上,我用脚本对象实例化)

代码语言:javascript
复制
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Random = UnityEngine.Random;

public class testing2 : MonoBehaviour
{
    //public ScriptableObject person;
    public CharStats charSats;

    public Sprite sprite2;
    private SpriteRenderer spriteRender;
    private void Start()
    {
        spriteRender = GetComponent<SpriteRenderer>();
        GetRandomSprite();

    }

    public Sprite GetRandomSprite()
    {
        int randomIndex = Random.Range(0, charSats.charIcon.Length);

        
        Debug.Log(charSats.charIcon[randomIndex]);

        if (sprite2 == null)
        {
            sprite2 = charSats.charIcon[randomIndex];
            spriteRender.sprite = sprite2;

        }
        return charSats.charIcon[randomIndex];
        
    }
}

代码语言:javascript
复制
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Random = UnityEngine.Random;

public class Testing : MonoBehaviour
{
    public GameObject Player;

    private void Update()
    {
        SpawnPlayer();
    }

    public void SpawnPlayer()
    {
        if (Input.GetKeyDown(KeyCode.A))
        {
            GameObject spawnPalyer = Instantiate(Player, new Vector3(Random.Range(-10,10), Random.Range(-10, 10)), Quaternion.identity) as GameObject;
        }

    }


}

代码语言:javascript
复制
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

[CreateAssetMenu(fileName = "New Character",menuName = "Character Creation/Player Units")]
public class CharStats : ScriptableObject
{
    [SerializeField]
    public string [] charName;
    public string [] charDescription;
    public string [] charSin;
    public Sprite [] charIcon;

    
}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67793353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档