如何在运行时加载播放器精灵。统一

时间:2019-05-06 16:39:44

标签: c# unity3d sprite

我需要在运行时中创建精灵,您可以在统一编辑器中进行移动和动画处理。怎么做?我在这里迷路了。

我知道的小问题!感谢您的帮助:)

我尝试过先创建精灵:

use rayon::prelude::*; // 1.0.3

fn example(scores: &mut [i32], indices: &BTreeSet<usize>) {
    let selected_scores: Vec<_> = uniq_refs(scores, indices).collect();
    selected_scores.into_par_iter().for_each(|s| *s *= 2);

    // Or

    uniq_refs(scores, indices).par_bridge().for_each(|s| *s *= 2);
}

我应该以某种方式实例化它吗?如何显示?

2 个答案:

答案 0 :(得分:0)

自从您谈论创建以来,这就是您可以做到的方式

       //Create a new gameObject
        GameObject char_obj = new GameObject("char");
        //Add an SpriteRenderer component
        SpriteRenderer char_sprite = char_obj.AddComponent<SpriteRenderer>();
        //Load the sprite and assign it
        char_sprite.sprite = Resources.Load<Sprite>("Art/GamesPlusJames_RPG-Character_0");

如果只需要更改精灵。您可以通过访问SpriteRenderer组件并更改其精灵来更改它。

答案 1 :(得分:0)

您可以尝试以下方法:

// Load your sprite
char_sprite = Resources.Load<Sprite>("Art/GamesPlusJames_RPG-Character_0");
// Create gameobject typeof "SpriteRenderer"
GameObject spriteObject = new GameObject("Sprite", typeof(SpriteRenderer));
// Set position
spriteObject.transform.position = new Vector3(0, 0, 0);
// Set rotation
spriteObject.transform.rotation = Quaternion.Euler(0, 0, 0);
// Get SpriteRenderer component
SpriteRenderer sr = spriteObject.GetComponent<SpriteRenderer>();
// Set your sprite
sr.sprite = char_sprite;