
(*:合并了SAIPOVersion 1.修改小时候主角的图层,解决脚部穿过问题(是脚会裂开,不是图层问题) 2.为序章战场适配应有的音效 3.为序章战场适配镜头震动 4.更换开门CG为新 5.使播放CG的时候玩家无法操作 6.添加移动水缸音效 7.添加穿上行囊音效(衣服摩擦) 8.添加了开门演出对话中敲门声的音效 9.使得多态【准备出发】幕中,不再能触发镜子的对话 10.给修理电话线界面换上美术素材 11.修正航弹的碰撞体,目前太短了,头部会嵌入一部分到地底才会爆炸 12.更换投掷系统的音效为新 (*:修正了捡拾音效出现的时机 13.制作并实装新的碉堡发射动画 (*:为了适配动画,我增加了一座碉堡,也适配了闪光灯 14.修复玩家在第一关终点被卡住的问题 15.更换夜间云的贴图 16.修复了敌人的脚步声3D特性不明显的问题 (*:建议给第一个CG加上音效 (*:建议给第一关加上微弱的雨声 (*:建议给第一关查看地图加上音效 (*:建议触发老兵牺牲事件的时候加上音效 (*:建议考虑玩家回去查看牺牲的老兵的可能性 (*:建议添加碉堡发令员的音效 (*:建议添加电报机页面撕掉错误输入的音效 (*:建议添加打开电报机界面的音效 (*:建议把碉堡发令员的指挥做成动态的 (*:现在的碉堡子弹过于整齐划一,看起来十分违和,建议修改 (*:建议加上碉堡处的挡板被击动画 (*:建议给第二关的云加上视差组件 (*:建议优化以下第二关的背景枪火光,现在太虚了,没有什么实际感 (*:建议加上敌人被声音吸引后的音效(霓虹语) (*:机枪开枪音效太软了,跟在打气枪一样,建议换成更有力的 我们正在越变越好,加油!
95 lines
3.1 KiB
C#
95 lines
3.1 KiB
C#
using System.Collections;
|
||
using System.Collections.Generic;
|
||
using UnityEngine;
|
||
using UnityEngine.UI;
|
||
using UnityEditor;
|
||
using UnityEngine.Video;
|
||
using UnityEngine.InputSystem;
|
||
|
||
public class CGAdministrator : MonoBehaviour
|
||
{
|
||
// Start is called before the first frame update
|
||
//CG管理员相关代码
|
||
|
||
private RawImage rawImage;
|
||
[Tooltip("记录这个场景中的所有CG,要加的话直接扩容数组,并往新的CG里面加内容")][SerializeField]
|
||
private ACG[] CGs;
|
||
private IndexRecoder indexRecoder;
|
||
private ACG playingCG;//正在播放的CG,因为invoke无法传参而存在
|
||
void Start()
|
||
{
|
||
rawImage = GetComponent<RawImage>();
|
||
indexRecoder = FindObjectOfType<IndexRecoder>();
|
||
rawImage.CrossFadeAlpha(0,0,true);//为了淡入显示,必须先把它的阿尔法值降到0,对吧?
|
||
|
||
//好像可以让它自己找到所有CG
|
||
CGs = new ACG[transform.childCount];
|
||
for(int i = 0; i < transform.childCount; i++)
|
||
{
|
||
CGs[i] = transform.GetChild(i).GetComponent<ACG>();
|
||
}
|
||
//
|
||
|
||
//
|
||
//CallACG("暂用");
|
||
//
|
||
}
|
||
|
||
// Update is called once per frame
|
||
void Update()
|
||
{
|
||
}
|
||
|
||
|
||
//外部呼叫CG用,传入你要调用的CG名
|
||
public void CallACG(string CGName)
|
||
{
|
||
//当外面叫了一个CG,传入CG名
|
||
foreach(ACG CG in CGs)
|
||
{
|
||
//找到这个CG
|
||
if(CG.CGName.Equals(CGName))
|
||
{
|
||
Debug.Log("正在显示CG:"+CG.name);
|
||
rawImage.texture = CG.texture;//把CG的内容装载上
|
||
rawImage.CrossFadeAlpha(1,indexRecoder.CGFadeTime,true);//淡入显示CG
|
||
playingCG = CG;
|
||
try
|
||
{
|
||
CG.GetComponent<VideoPlayer>().Play();//开始播放这个CG
|
||
FindObjectOfType<PlayerInput>().SwitchCurrentActionMap("NullMap");//使玩家无法操作
|
||
}
|
||
catch(System.NullReferenceException)
|
||
{
|
||
Debug.Log("播放CG失败,看看赋值对不对");
|
||
}
|
||
Invoke("StopIt",CG.time);
|
||
}
|
||
}
|
||
}
|
||
|
||
//改变标记,使管理员意识到CG该停了
|
||
private void StopIt(){rawImage.CrossFadeAlpha(0f,indexRecoder.CGFadeTime,true);//淡出CG
|
||
playingCG.OnEnded();}//告诉这个CG它结束了,然后触发它的结束事件
|
||
|
||
// //制造一个只读的变量,不要动这些
|
||
// 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;
|
||
// }
|
||
// }
|
||
// //
|
||
|
||
}
|