通过枚举获得虚拟轴名称

最近在学习Unity基础,学习到Input的虚拟轴时发现虚拟轴必须要填写轴的名称,这需要到ProjectSetting里面去复制出来,再粘贴,非常的蛋疼。

于是我就想能否自己封一个类来通过枚举名把名字点出来呢?

于是就完成了这个工具类:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
using UnityEditor;
using System.Text;
using System;

public enum E_Axis_Name
{
    Horizontal,
    Vertical,
    Fire1,
    Fire2,
    Fire3,
    Jump,
    MouseX,
    MouseY,
    MouseScrollWheel
}
/// <summary>
/// 通过枚举名来获取虚拟轴的名字
/// </summary>
public static class GetAxisNameByEnum
{
    public static List<string> strList = new List<string>();
    //获取字串开始下标
    public static int subStartIndex = 8;

    /// <summary>
    /// 改变InputMannger中的值时同时要更新List
    /// </summary>
    public static void AxisUpdate()
    {
        string path = @"D:\unity\UnityTeach1\ProjectSettings\InputManager.asset";
        FileStream fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite);
        StreamReader sr = new StreamReader(fs, Encoding.Default);
        string content = string.Empty;
        strList.Clear();
        while ((content = sr.ReadLine()) != null)
        {
            content = content.Trim().ToString();
            if (content.StartsWith("m_Name"))
            {
                strList.Add(content.Substring(8));
            }
        }

    }
    /// <summary>
    /// 获取轴的名字
    /// </summary>
    /// <param name="name">枚举名</param>
    /// <returns></returns>
    public static string GetName(E_Axis_Name name)
    {
        return strList[Convert.ToInt32(name)];
    }
}

思路就是去读取InputMannger这个文件,获得所有的轴名称,存入List中,然后再把枚举转换为下标去读取。

本人还在入门阶段,写的不好的希望大家能多指正。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值