Roman c9a4456308 任务:推进游戏的流程化
场景:【序章-家中】
1.创建游戏物体【多态管理员】
*:修改脚本文件夹名称至中文
*:修复若干Bug
2.创建脚本【PolymorphicAdministrator】
3.编写【PolymorphicAdministrator】的基本逻辑
4.为数值记录者添加变量【stageName】,用来识作为多态的识别标志
5.完成了多态系统,现在同一个场景可以根据目前的【演出名】进行不同的初始化以节省空间。

后续的流程化明天继续开发,下班
加油吧🙏
2021-08-11 02:17:57 +08:00

94 lines
3.5 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
public class IndexRecoder : MonoBehaviour
{
//策划接口类储存了所有易变的数值每一项都写了toolTip谁叫我是小棉袄呢❤对了电报的字典也写在这里
// Start is called before the first frame update
[Tooltip("角色普通移动速度")]
public float playerMoveSpeed;//角色普通移动速度
[Tooltip("角色跳跃力度")]
public float playerJumpSpeed;//角色跳跃力度
[Tooltip("角色跑步的时候,速度是普通状态的多少倍")]
public float runSpeedMultiple;//角色跑步的时候,速度是普通状态的多少倍
[Tooltip("判定输入为点还是横线的界限时间")]
public float dotRoLineTime;//判定输入为点还是横线的界限时间
public Dictionary<string, string> codeBook = new Dictionary<string, string>();//摩尔斯电码字典
[Tooltip("角色修复电话线需要多长时间")]
public float TelephoneNeedTime;//角色修复电话线需要多长时间
[Tooltip("炮弹生成的最小时间间隔")]
public float bombingAreaMinimumTimeInterval;
[Tooltip("炮弹生成的最大时间间隔")]
public float bombingAreaMaximumTimeInterval;
[Tooltip("生成炮弹位置离玩家的最大偏移量")]
public float bombingAreaMaxOffSetOfShell;
[Tooltip("生成炮弹的高度")]
public float bombingAreaShellHeight;
[Tooltip("炮弹的下落速度")]
public float shellSpeed;
[Tooltip("炮弹的下落时间")]
public float shellFallingTime;
[Tooltip("炮弹阴影的震动幅度")]
public float shellShadowRangeOfChange;
[Tooltip("炮弹阴影的Y值偏移")]
public float shellShadowPositionYOffSet;
[Tooltip("玩家投掷角度变化的速度")]
public float rateOfChangeOfThrowingAngle;
[Tooltip("抛出投掷物的力度")]
public float strengthOfThrowing;
[SerializeField][Tooltip("演出名称,这个不给你改,这个是我做多态用的,在这里只读")][ReadOnly]
public string stageName;
void Start()
{
GameObject.DontDestroyOnLoad(gameObject);
//开发者捷径
codeBook.Add("..--.","864246511");
codeBook.Add("--..-","02948");
//
codeBook.Add(".----","1");
codeBook.Add("..---","2");
codeBook.Add("...--","3");
codeBook.Add("....-","4");
codeBook.Add(".....","5");
codeBook.Add("-....","6");
codeBook.Add("--...","7");
codeBook.Add("---..","8");
codeBook.Add("----.","9");
codeBook.Add("-----","0");
stageName = "序章-家中-未打码";
}
// Update is called once per frame
void Update()
{
}
//修改演出名称的函数,在游戏流程推进的时候用
public void ChangeStageName(string newName){stageName = newName;}
//制造一个只读的变量,不要动这些
public class ReadOnlyAttribute : PropertyAttribute{}
[CustomPropertyDrawer(typeof(ReadOnlyAttribute))]
public class ReadOnlyDrawer : PropertyDrawer
{
public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
{
return EditorGUI.GetPropertyHeight(property, label, true);
}
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
{
GUI.enabled = false;
EditorGUI.PropertyField(position, property, label, true);
GUI.enabled = true;
}
}
//
}