色光剑 (U6)

色光剑 (U6)

随机变换颜色的剑。驾驭色彩的力量!

武器

这是我的第一个模组,起初是为了测试我能否向游戏中添加自定义代码,结果成功了。

模型感谢 Fernando:https://sketchfab.com/3d-models/simple-sword-fc14fe82058a4ffa88ddf6b6fa3d5147

希望大家喜欢!

代码非常简单,我甚至不需要使用 B&S 的自定义方法:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

namespace 克罗马蒂克之剑
{
    public class ItemColorChange : MonoBehaviour
    {
        // 我声明我的变量
        private Material bladeMaterial;
        private MeshRenderer mesh;
        private Color setColor;

        void Start()
        {
            // 我从主游戏对象的子对象中获取网格。
            mesh = this.GetComponentInChildren(typeof(MeshRenderer)) as MeshRenderer;
            // 我存储了刀刃的材质(它恰好是模型中的第二个材质)
            bladeMaterial = mesh.materials[1];
            // 我设置了第一个颜色来达到
            setColor = new Vector4(Random.Range(0f, 1f), Random.Range(0f, 1f), Random.Range(0f, 1f), 1f);
        }

        // Update每帧调用一次
        private void Update()
        {
            // 随着颜色通过Lerp函数变化,我定义了一个退出条件以避免其减速过多
            if (Vector4.Distance(bladeMaterial.color, setColor) < 0.1f)
            {
                // 然后我设置了一个新的颜色去往
                setColor = new Vector4(Random.Range(0f, 1f), Random.Range(0f, 1f), Random.Range(0f, 1f), 1f);
            }

            // 我只是在当前颜色和设定颜色之间进行插值
            bladeMaterial.color = Color.Lerp(bladeMaterial.color, setColor, 0.01f);
        }
    }
}