找回密码
 注册帐号

扫一扫,访问微社区

码农亚 Unity工作效率提升小论<二>(未完)

24
回复
2980
查看
[ 复制链接 ]
排名
2715
昨日变化

12

主题

129

帖子

1187

积分

Rank: 9Rank: 9Rank: 9

UID
251813
好友
4
蛮牛币
2176
威望
0
注册时间
2017-10-31
在线时间
490 小时
最后登录
2019-4-25

专栏作家活力之星

2018-8-18 13:47:42 显示全部楼层 阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
本帖最后由 码农亚 于 2018-8-18 13:49 编辑

00 祝福大家七夕快乐! 作为逗比的码农亚瑟,我又来这里打扰大家了。这次分享的还是提高效率的简单思想。
01 譬如,策划扔给了我们一个带动画的模型,然后让我们进行动画的播放(此处暂以为例,重点是思想!)
02 哒哒哒哒哒哒,然后我们就开始编写代码
   
[C#] 纯文本查看 复制代码
[/font]
[font=Tahoma]   public class PlayAnimationTest : MonoBehaviour {
   [Header("动画端口")]
   public Animation _animPort;
   [Header("动画信息组")]
   public List<string> _animNames;
   public void AnimExecute()
   {
    StartCoroutine(AnimPrerparation(_animPort, 0));
    }
   IEnumerator AnimPrerparation(Animation _animPortValue,int value)
   {
   string _animNameValue = _animNames[value];
  _animPortValue.Play(_animNameValue);
  while (_animPortValue.isPlaying)
  {
  yield return 0;
   }
  Debug.Log(_animNameValue+"动画播放完成");
  }
  }

   一阵哒哒之后,我们得到了以上代码,因为便于观看,我把Start以及Update方法删掉了。
03 出于客户的各种需求,我们又开始编写其它的代码。。。
   哒哒哒哒哒哒...哒哒哒哒哒哒...哒哒哒哒哒哒...
04 紧张的忙碌之后,初版项目提交。
05 客户反馈问题,提出修正以及新的需求。
   开始修正,一顿增删改查。
06 然后03=>04=>05=>03...这样的流程重复若干时间,终于某个燥热的夜晚,项目终于完善且预计将来的很久时间不会重启修复计划。
   然后=>This Project Finished.(Maybe short time,maybe not...)
07 如此工作了半年或者更长时间,在某个晴朗的午后,天上或许还挂着彩虹,因为某个原因,你打开了你的项目,并且随意的看了看代码。
08 然后你发现,就上面的播放动画的代码,许多的脚本中,A有,C有,D有,或多或少,它们就丢在那里,默默的看着你。
09 甚至于代码,模型,图片...你发现重复的事情一层一层,整个下来,眼前的项目就是一个臃肿的机构。
   你亲手制造了他,有四肢,但是胳膊长短不一,双腿一胖一瘦,这样的一个人,或者公司,机构,能撑得住几次风浪呢?
   好似二八定律一样,本来应该以二撬动八,现在以八抢占二,反而策划还要嫌弃你太慢!
10 以上都是我磨磨唧唧说的,额,希望对大家有些启发。鉴于现在是码农,而且世界上重复性浪费资源的事情不少见,现在简单的就只从代
   码着手。
11 以上的播放器结构抽象一些区分=>y=f(x);
   y(输出内容)就是最终播放动画,x(输入内容)就是动画播放器和动画名字两个参数,f()就是内在的播放动画方法。
   在程序里面,这三要素是完整的,而且不可缺失某一要素,结合程序本身,即存储和释放的过程,我们可以归纳,提取之后的表现模块:
    A:存储
    B:释放
    当然,很多小伙伴早就知道一个东西:自定义类=>也就是不继承Monobehaviour 的类(class)
12 接下来的一切就很简单了:


      
[C#] 纯文本查看 复制代码
      public class MNBaseAnimation
    {
     Animation _baseAnimation;
     string _animationName;
     public MNBaseAnimation(Animation _anim ,string _animName)
    {
      this._baseAnimation = _anim;
     this._animationName = _animName;
     }
    public  IEnumerator PlayBaseAnimation()
    {
   _baseAnimation.Play(_animationName);
   while (_baseAnimation.isPlaying )
   {
    yield return 0;
   }
   Debug.Log("播放完成");
   }
   }

   调用
   
[C#] 纯文本查看 复制代码
    public class PlayAnimationTest : MonoBehaviour {
   [Header("动画端口")]
   public Animation _animPort;
   [Header("动画信息组")]
   public List<string> _animNames;
   MNBaseAnimation _baseAnim;
   void Start()
  {
   _baseAnim = new MNBaseAnimation(_animPort, _animNames[0]);
  }
   void Update()
  {
  if (Input.GetKeyDown(KeyCode.Space))
  {
  StartCoroutine(_baseAnim.PlayBaseAnimation());
  }
  }
  //协程内部扩充
  IEnumerator ExecuteAnim()
   {
   yield return StartCoroutine(_baseAnim.PlayBaseAnimation());
  //这样就保证了程序的可拓展!
   }
  }
  

13  以上就是所有内容了吗?并不!这只是简单填鸭式的写法,而且很笨拙。我会另写文章将抽象的思想走一点点,从接口开始构建,
     就是这样。
参与人数 2鲜花 +6 收起 理由
happiness9 + 1 赞一个!
AR小木 + 5

查看全部评分总评分 : 鲜花 +6

回复

使用道具 举报

4四处流浪
437/500
排名
19336
昨日变化

0

主题

70

帖子

437

积分

Rank: 4

UID
189111
好友
0
蛮牛币
29
威望
0
注册时间
2016-12-3
在线时间
337 小时
最后登录
2019-4-10
2018-8-20 10:00:26 显示全部楼层
感谢楼主分享
回复

使用道具 举报

排名
19946
昨日变化

0

主题

23

帖子

66

积分

Rank: 2Rank: 2

UID
246942
好友
0
蛮牛币
85
威望
0
注册时间
2017-10-1
在线时间
17 小时
最后登录
2018-9-16
2018-8-20 12:40:53 显示全部楼层
{:94:}
回复

使用道具 举报

5熟悉之中
954/1000
排名
2503
昨日变化

0

主题

136

帖子

954

积分

Rank: 5Rank: 5

UID
276682
好友
0
蛮牛币
1867
威望
0
注册时间
2018-4-11
在线时间
244 小时
最后登录
2019-4-25
2018-8-20 14:07:08 显示全部楼层
谢谢分享
回复

使用道具 举报

6蛮牛粉丝
1170/1500
排名
2333
昨日变化

1

主题

160

帖子

1170

积分

Rank: 6Rank: 6Rank: 6

UID
236305
好友
1
蛮牛币
1646
威望
0
注册时间
2017-8-7
在线时间
401 小时
最后登录
2019-4-25
2018-8-20 16:33:07 显示全部楼层
谢谢分享~
回复

使用道具 举报

6蛮牛粉丝
1149/1500
排名
3616
昨日变化

5

主题

473

帖子

1149

积分

Rank: 6Rank: 6Rank: 6

UID
269155
好友
2
蛮牛币
2336
威望
0
注册时间
2018-2-22
在线时间
257 小时
最后登录
2019-4-25
2018-8-20 17:13:59 显示全部楼层
谢谢分享
回复

使用道具 举报

5熟悉之中
817/1000
排名
5758
昨日变化
1

9

主题

320

帖子

817

积分

Rank: 5Rank: 5

UID
285521
好友
0
蛮牛币
1389
威望
0
注册时间
2018-6-12
在线时间
236 小时
最后登录
2019-1-14
2018-8-20 20:45:08 显示全部楼层
回复

使用道具 举报

7日久生情
1878/5000
排名
2201
昨日变化

12

主题

878

帖子

1878

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
218409
好友
3
蛮牛币
5135
威望
0
注册时间
2017-4-19
在线时间
364 小时
最后登录
2019-3-27
2018-8-21 09:09:46 显示全部楼层

感谢楼主分享
回复

使用道具 举报

5熟悉之中
697/1000
排名
3700
昨日变化

0

主题

47

帖子

697

积分

Rank: 5Rank: 5

UID
237976
好友
0
蛮牛币
1735
威望
0
注册时间
2017-8-16
在线时间
244 小时
最后登录
2019-4-25
2018-8-21 09:21:47 显示全部楼层
感谢楼主分享
回复

使用道具 举报

7日久生情
2320/5000
排名
1613
昨日变化

72

主题

476

帖子

2320

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
71862
好友
28
蛮牛币
4168
威望
0
注册时间
2015-1-29
在线时间
744 小时
最后登录
2019-1-16

专栏作家蛮牛译员

2018-8-21 11:24:10 显示全部楼层
感谢楼主分享
回复

使用道具 举报

排名
39856
昨日变化

0

主题

51

帖子

72

积分

Rank: 2Rank: 2

UID
286498
好友
0
蛮牛币
35
威望
0
注册时间
2018-6-20
在线时间
15 小时
最后登录
2018-12-22
2018-8-21 17:31:55 显示全部楼层
太棒了哈哈哈哈
回复

使用道具 举报

排名
64922
昨日变化

0

主题

1

帖子

4

积分

Rank: 1

UID
289956
好友
0
蛮牛币
0
威望
0
注册时间
2018-7-16
在线时间
1 小时
最后登录
2018-8-22
2018-8-22 01:56:51 显示全部楼层
感谢分享~
回复

使用道具 举报

4四处流浪
447/500
排名
31428
昨日变化

0

主题

311

帖子

447

积分

Rank: 4

UID
247666
好友
0
蛮牛币
130
威望
0
注册时间
2017-10-9
在线时间
126 小时
最后登录
2019-4-23
2018-8-22 12:55:25 显示全部楼层
唯有666666能表达我的心情
回复 支持 反对

使用道具 举报

7日久生情
1709/5000
排名
1990
昨日变化

5

主题

516

帖子

1709

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
54335
好友
2
蛮牛币
5531
威望
0
注册时间
2014-11-9
在线时间
506 小时
最后登录
2019-4-25
2018-8-22 14:34:40 显示全部楼层
多谢楼主精彩的分享
回复 支持 反对

使用道具 举报

排名
23062
昨日变化

0

主题

13

帖子

48

积分

Rank: 1

UID
255275
好友
0
蛮牛币
47
威望
0
注册时间
2017-11-20
在线时间
15 小时
最后登录
2019-4-12
2018-8-22 16:13:28 显示全部楼层
感谢楼主分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则