当前位置:网站首页>Unity C# 单例模式 学习复习笔记
Unity C# 单例模式 学习复习笔记
2022-04-23 06:28:00 【Allen7474】
Unity C# 单例模式 学习复习笔记
什么是单例模式:优缺,理解
Unity单例模式+例子_就一枚小白的博客-CSDN博客_unity 单例
学习链接:开关门 案例【Unity3D学习】Unity3D用单例模式实现简单交互功能、开关门 开关灯_哔哩哔哩_bilibili
单例脚本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Sc03Singletion : MonoBehaviour
{
//单例模式
static Sc03Singletion instance;
public static Sc03Singletion Instance()
{
if (instance==null)
{
instance = new Sc03Singletion();
}
return instance;
}
public void AnimBegin(GameObject obj,Animator ani,string state)
{
ani = obj.GetComponent<Animator>();
if (ani.speed==0)
{
ani.speed = 1;
}
ani.SetBool(state,true);
}
public void AnimEnd(GameObject obj, Animator ani, string state)
{
if (ani.speed == 0)
{
return;
}
ani.SetBool(state, false);
}
}
门开关脚本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Sc03Door : MonoBehaviour
{
Animator Ani_Door;
string state;
private void Start()
{
state = "OpenOrClose";
Ani_Door = GetComponent<Animator>();
Ani_Door.speed = 0;
}
public void OpenDoor()
{
//简单方法
/* if (Ani_Door.speed==0)
{
Ani_Door.speed = 1;
}
Ani_Door.SetBool(state, true);*/
//单例模式
Sc03Singletion.Instance().AnimBegin(this.gameObject,Ani_Door,state);
}
public void CloseDoor()
{
/*
if (Ani_Door.speed == 0)
{
return;
}
Ani_Door.SetBool(state, false);
*/
Sc03Singletion.Instance().AnimEnd(this.gameObject, Ani_Door, state);
}
}
灯控制脚本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Sc03Light : MonoBehaviour
{
Animator Ani_Light;
string state;
private void Start()
{
state = "lightOpenClose";
Ani_Light = GetComponent<Animator>();
Ani_Light.speed = 0;
}
public void LightOn()
{
Sc03Singletion.Instance().AnimBegin(this.gameObject, Ani_Light, state);
}
public void LightOff()
{
Sc03Singletion.Instance().AnimEnd(this.gameObject, Ani_Light, state);
}
}
版权声明
本文为[Allen7474]所创,转载请带上原文链接,感谢
https://blog.csdn.net/Allen7474/article/details/124320178
边栏推荐
- C#操作注册表全攻略
- 自己封装unity的Debug函数
- Common DOS commands
- Mobile game performance optimization
- State synchronization and frame synchronization
- Mongodb starts warning information processing
- Django uses MySQL database to solve error reporting
- ABAP 从CDS VIEW 发布OData Service示例
- C # use laida criterion (3) σ Criteria) reject abnormal data (.Net reject singular values in a group of data)
- Judge whether the beginning and end of the string contain target parameters: startswith() and endswith() methods
猜你喜欢
随机推荐
'NPM' is not an internal or external command, nor is it a runnable program or batch file
保研准备经验贴——18届(2021年)中南计科推免到浙大工院
electron-builder打包报错:proxyconnect tcp: dial tcp :0: connectex
事件管理之一
promise all的实现
Window10版MySQL设置远程访问权限后不起效果
Redis connection error err auth < password > called without any password configured for the default user
SVG中年月日相关的表达式
Nodejs (four) character reading
js中对象的三种创建方式
SAP 导出Excel文件打开显示:“xxx“的文件格式和扩展名不匹配。文件可能已损坏或不安全。除非您信任其来源,否则请勿打开。是否仍要打开它?
SampleCameraFilter
NodeJS(六) 子进程操作
TimelineWindow
MySQL8.0 安装/卸载 教程【Window10版】
SQL针对字符串型数字进行排序
C#控制相机,旋转,拖拽观察脚本(类似Scenes观察方式)
常用Markdown语法学习
Samplecamerafilter
js之函数的两种声明方式