大一下学期加入了学校的凡路游戏开发部门。先学习了c#基础,然后跟着做了第一个unity游戏 拾荒者。
从小就有做游戏的梦想,如今算小小地实现了一把,很开心。以后我还要做出跟好玩的游戏
老师教的代码中,每个脚本需要获取其他控件的属性的时候,就得GetComnent<>一下或者GameObjec.Find一下,甚至有很多空间互相之间需要获取一下,我觉得代码的复写就有点多了。自己有个想法,创建一个DateManager获取所有物体和控件的属性,其他的控件只需要引用DateManager就行了。虽然可能代码变长了,但是确实实现了代码的复用我觉得也是一种优化了 。
第一次做就 get 到了
什么学校还有这玩意...
@叶默哲:同问,羡慕不已,一定要大肆宣传。
虽然我浙传数技也有教Unity,但也想问问你是什么学校的?
@RemJack:哈哈,我是长沙理工大学的。我讲的老师是视频里的老师啦,并没有人教。但是有学长教,学长水平挺高的,基本上问什么都能回答。
最近由 qsgy 修改于:2017-08-25 23:03:55大学教这个是真好啊,我都是买书看的,unity书很贵……
不过用一个DataManager获取所有控件的想法,我想到一些问题:
1.如果你的游戏物体 or 控件数目非常多,你如何区分呢?
每一个GameObject命名,对应的Component也是吗?
2.有没有想过,动态生成(代码创建)的如何处理呢?
Manager的获取所有控件的代码,你是打算放在Start(),Awake(),还是Update()之中呢?
@lshy1993:先感谢你为我提出的问题,哈哈。
1.可能是我接触的还少吧。我感觉不存在区分的问题吖,命名严格遵守规则自己就分清楚是什么东西了。单例化
DataManager,调用某个字段的时候比如这样DataManager.Instance.player.posiontion有智能提示的存在,敲得很快的。
2.应该在Awake里获取吧。
关于this关键字我有点疑惑 void InitGame()
{
mapManager = this.GetComponent();
····}
这里GameManager 和MapManager都是同一个物体的控件。在GameManager中获取MapManager。问题是this关键字不是指本身的对象吗,然而GetComponent是GameObject的方法吧,那么这个this关键字指的是什么
@qsgy:我倒是觉得这么多的控件,让我命名要出问题……
this 用于指代当前类的实例,也就是你的C#脚本所在的那个GmaeObject。
获取实例自然可以调用这个GO类的get方法了。
第一次在这个平台发表日志,没想到有这么多人回复我。感觉很开心,哈哈。我很喜欢游戏,也喜欢做游戏,一定会坚持下去的。