开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

开发者专栏

关注:2234

当前位置:游戏蛮牛 技术专区 开发者专栏

__________________________________________________________________________________
开发者干货区版块规则:

  1、文章必须是图文形式。(至少2幅图)
      2、文章字数必须保持在1500字节以上。(编辑器右下角有字数检查)
      3、本版块只支持在游戏蛮牛原创首发,不支持转载。
      4、本版块回复不得无意义,如:顶、呵呵、不错......【真的会扣分的哦】
      5、......
__________________________________________________________________________________
查看: 4385|回复: 37

[码农亚] Unity工作效率提升小论

[复制链接]  [移动端链接]
排名
4480
昨日变化
26

8

主题

86

帖子

690

积分

Rank: 9Rank: 9Rank: 9

UID
251813
好友
3
蛮牛币
1407
威望
0
注册时间
2017-10-31
在线时间
298 小时
最后登录
2018-6-21

专栏作家活力之星

发表于 2018-3-11 20:07:27 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 码农亚 于 2018-3-11 20:11 编辑


01  首先推荐大家去看一本书《代码整洁之道》。[此处不提供下载地址,毕竟这本书很有名。]
02  以下是我摘抄其中的一部分原则
     1.函数只做一件事。
     2.重复就抽象化。
     3.面向对象。
     4.前后一致。
     5.干掉无用代码
     6.消除模糊,不准确。
     7.边界意外情况应该作为边界特殊处理化
03下面是开发时能够提高更多效率的一些大致方向(总结),小白向,大佬如果发现有遗漏的,可以进行补充,我会重新编辑修正。
     1.不断学习。(核心)
     2.面向对象。(这当然是废话,我后面会加入一个简单的Demo说明)
     3.委托事件的灵巧运用。(简单举例说明)
     4.Unity编辑器的拓展。(大佬写了很多,不举例了)
     5.思维的推演。(进了公司后讨论问题渐渐成为讨论思维,因此补充这一点)
     6.回归本质。(这句话可能有不同的理解,此处我指的是回归C#)
04那好,接下来是基本讲解模块。
     1.聚点成线,聚线成面。(楼主的顺口话1)
     2.设:方法f(x),已知x=1,求f(1)=?(楼主的顺口话2)
     3.将程序中的模块构建成道路,让你的思维穿行(楼主的顺口话3)
     4.面向对象方法小例子
[C#] 纯文本查看 复制代码
[/size][/font][/b]
[b][font=Tahoma][size=2] using UnityEngine;
 using System.Collections;
 using System;
  //接口 相应语法可以百度
 public interface  IMethod
 {
  //奠定基本结构(思想的方向初步确定)
  string Execute(string name);
  string UnExecute(string name);
}
  class BaseMethod : IMethod
{   
  //结构拓展
  public string Execute(string name )
    {
        return ("执行方法" + name);
    }
[p=30, 2, left] public string UnExecute(string name)
    {
 return ("停止执行方法" + name);
    }
}
 class MiddleMethod : IMethod
{
 //灵活调用(继续拓展)
 BaseMethod _baseMethod = new BaseMethod();
 public string Execute(string name)
    {
  return "中间阶段调用" + _baseMethod.Execute(name);
 }[/p][/size][p=30, 2, left][size=2]  public string UnExecute(string name)
    {
 return "中间阶段调用" + _baseMethod.UnExecute(name);
    }
}


以上基本构建了相关接口以及相关简单拓展
然后就是主程序的调用

using UnityEngine;

using System.Collections;

public class ExecuteMethod : MonoBehaviour {

string nameFirst= "码农的方法";

string nameSecond = "亚瑟的方法";

// Use this for initialization

void Start () {

   MiddleMethod _middleMethod = new MiddleMethod();

   Debug.Log("首先执行" + _middleMethod.Execute(nameFirst));

   Debug.Log("然后执行" + _middleMethod.UnExecute(nameSecond));


}

}



这么一看,似乎我要挑一些简单的代码说明了。。。

那么。、。

5.关于Event的,就一句相关代码(后面Demo有示例,不必担心

//Unity4.6之后引入的事件系统是这么引用的,Unity4.6之前百度可以找到

public List<UnityEvent> myevents = new List<UnityEvent>();


6.补充一下,可能上面的抽象例子也不是很能说明怎么传输GameObject类似的方法,我自己额外做了一个启发场景

7.下期应该是借助Unity编辑器知识简单的做一个灵活播放动画的小例子。

8.第一次发帖。。。。。。咦,总觉的“第一次”容易引出老司机翻车的事故。。。算了,不开车了。

9.能力不足,大佬有补充的或者认为某些话语不妥当的,留言我,我加以增删改。。

Cute00.zip (537.53 KB, 下载次数: 63, 售价: 1 蛮牛币)

评分

参与人数 2鲜花 +4 收起 理由
Coool + 2 淡定
oligo + 2 赞一个!

查看全部评分


回复

使用道具 举报

排名
4480
昨日变化
26

8

主题

86

帖子

690

积分

Rank: 9Rank: 9Rank: 9

UID
251813
好友
3
蛮牛币
1407
威望
0
注册时间
2017-10-31
在线时间
298 小时
最后登录
2018-6-21

专栏作家活力之星

 楼主| 发表于 2018-3-11 20:16:06 | 显示全部楼层
嗯,我是5.3.5版本的Unity

回复 支持 反对

使用道具 举报

6蛮牛粉丝
1262/1500
排名
3577
昨日变化
10

13

主题

284

帖子

1262

积分

Rank: 6Rank: 6Rank: 6

UID
217870
好友
1
蛮牛币
1101
威望
0
注册时间
2017-4-15
在线时间
597 小时
最后登录
2018-6-20
发表于 2018-3-12 08:48:55 | 显示全部楼层
楼主,有没有什么比较好的编程类书籍推荐?

回复 支持 1 反对 0

使用道具 举报

7日久生情
3507/5000
排名
1547
昨日变化
1

0

主题

2005

帖子

3507

积分

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

UID
94526
好友
0
蛮牛币
1696
威望
0
注册时间
2015-4-22
在线时间
758 小时
最后登录
2018-6-20
发表于 2018-3-12 09:30:03 | 显示全部楼层
感谢楼主分享
[发帖际遇]: Lnoe 乐于助人,奖励 1 蛮牛币. 幸运榜 / 衰神榜

回复

使用道具 举报

5熟悉之中
984/1000
排名
2555
昨日变化
7

0

主题

243

帖子

984

积分

Rank: 5Rank: 5

UID
147717
好友
0
蛮牛币
1157
威望
0
注册时间
2016-5-5
在线时间
241 小时
最后登录
2018-6-20
发表于 2018-3-12 09:39:46 | 显示全部楼层
感谢楼主分享

回复

使用道具 举报

7日久生情
2909/5000
排名
2669
昨日变化
15

0

主题

2021

帖子

2909

积分

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

UID
219676
好友
0
蛮牛币
2428
威望
0
注册时间
2017-7-12
在线时间
406 小时
最后登录
2018-6-20

活力之星

发表于 2018-3-12 18:41:51 | 显示全部楼层
谢谢分享

回复

使用道具 举报

4四处流浪
327/500
排名
22207
昨日变化
11

0

主题

282

帖子

327

积分

Rank: 4

UID
269036
好友
0
蛮牛币
26
威望
0
注册时间
2018-2-21
在线时间
27 小时
最后登录
2018-4-5
发表于 2018-3-12 18:51:36 | 显示全部楼层
谢谢楼主分享
[发帖际遇]: yiss92 乐于助人,奖励 3 蛮牛币. 幸运榜 / 衰神榜

回复

使用道具 举报

7日久生情
2681/5000
排名
209
昨日变化

0

主题

195

帖子

2681

积分

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

UID
28880
好友
6
蛮牛币
13326
威望
0
注册时间
2014-6-9
在线时间
571 小时
最后登录
2018-5-9
发表于 2018-3-13 09:00:14 | 显示全部楼层
you有没有pdf可以分享啊啊
[发帖际遇]: UnityAdolf 乐于助人,奖励 1 蛮牛币. 幸运榜 / 衰神榜

回复 支持 反对

使用道具 举报

4四处流浪
346/500
排名
8963
昨日变化
5

0

主题

118

帖子

346

积分

Rank: 4

UID
245937
好友
0
蛮牛币
476
威望
0
注册时间
2017-9-25
在线时间
115 小时
最后登录
2018-6-12
发表于 2018-3-13 09:49:40 | 显示全部楼层

回复

使用道具 举报

排名
1027
昨日变化
4

13

主题

1066

帖子

2859

积分

Rank: 9Rank: 9Rank: 9

UID
68430
好友
10
蛮牛币
10194
威望
0
注册时间
2015-1-14
在线时间
770 小时
最后登录
2018-6-20
发表于 2018-3-13 10:41:16 | 显示全部楼层
谢谢楼主分享谢谢楼主分享

回复 支持 反对

使用道具 举报

2初来乍到
104/150
排名
17764
昨日变化
4

0

主题

31

帖子

104

积分

Rank: 2Rank: 2

UID
72230
好友
0
蛮牛币
5
威望
0
注册时间
2015-1-30
在线时间
43 小时
最后登录
2018-6-4
QQ
发表于 2018-3-13 15:36:52 | 显示全部楼层
感谢楼主分享

回复

使用道具 举报

5熟悉之中
794/1000
排名
5556
昨日变化
49

0

主题

416

帖子

794

积分

Rank: 5Rank: 5

UID
146677
好友
9
蛮牛币
2632
威望
0
注册时间
2016-4-25
在线时间
156 小时
最后登录
2018-6-20
QQ
发表于 2018-3-13 20:20:34 | 显示全部楼层
还是支持一下,多看看C#对自我提升还是很有用处

回复 支持 反对

使用道具 举报

7日久生情
2402/5000
排名
777
昨日变化
2

6

主题

451

帖子

2402

积分

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

UID
46577
好友
1
蛮牛币
2901
威望
0
注册时间
2014-9-24
在线时间
839 小时
最后登录
2018-6-20
发表于 2018-3-14 10:58:22 | 显示全部楼层
使用接口,就没办法继承MonoBehaviour 。后面就没法通过get方法获取单位身上的这个组件了

回复 支持 反对

使用道具 举报

排名
4480
昨日变化
26

8

主题

86

帖子

690

积分

Rank: 9Rank: 9Rank: 9

UID
251813
好友
3
蛮牛币
1407
威望
0
注册时间
2017-10-31
在线时间
298 小时
最后登录
2018-6-21

专栏作家活力之星

 楼主| 发表于 2018-3-14 11:08:18 | 显示全部楼层
llupll 发表于 2018-3-14 10:58
使用接口,就没办法继承MonoBehaviour 。后面就没法通过get方法获取单位身上的这个组件了 ...

我通过一个示例来说明这种情况怎么解决了,就是将分离出来的类模块作为传输模块使用,嗯,因为怕你们不太理解,并且不限制你们的相关思维,我做的示例很简单。

回复 支持 反对

使用道具 举报

排名
4480
昨日变化
26

8

主题

86

帖子

690

积分

Rank: 9Rank: 9Rank: 9

UID
251813
好友
3
蛮牛币
1407
威望
0
注册时间
2017-10-31
在线时间
298 小时
最后登录
2018-6-21

专栏作家活力之星

 楼主| 发表于 2018-3-14 11:11:15 | 显示全部楼层
本帖最后由 码农亚 于 2018-3-14 11:31 编辑
码农亚 发表于 2018-3-14 11:08
我通过一个示例来说明这种情况怎么解决了,就是将分离出来的类模块作为传输模块使用,嗯,因为怕你们不太 ...

我不知道你此时所说的接口的含义,但是C#里面Interface本身是用来作为项目总脉络的一种思路分析作用,至于相关的拓展,以及你思考的问题,可以查询相关资料,努力!加油!

回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐 上一条 /1 下一条

快速回复 返回顶部 返回列表