第一个软件和第一个游戏
今天做完了第一个软件和第一个游戏,相当有效率……虽然没怎么睡觉,也没怎么务正业……
第一个软件是用C#做的一个加密记事本。没有做计划,完全是想到哪做到哪,所以到最后结构稍微有点乱了,不过本来就没打算做好,没想到最后做的还比较完美。
这个软件实现的几个主要功能是:
- 账号密码登陆;
- 自动获取当前日期和今日天气;
- 每天一份文档,按日期自动保存在软件目录下;
- 文件内容加密了,只能用这个软件登陆进去看;
- 只是给自己用的,所以没做设置帐号密码的功能,直接写死在程序里了。
以上,下面说游戏。
说是自己做的第一个游戏,其实是照着教程来的。在这里把一些重要的技术点记录一下:
游戏类型是打飞机。
- 调用transform比较消耗资源,因此不应在脚本中重复调用,而要声明一个transform类型的引用,然后在void start()里将this.transform赋给它,这样以后直接调用这个transform实例;
- 控制频率的简单做法是,声明一个float变量用来倒计时,为0时再出发。代码大概是这样:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | void Update() { float actionRate = 0.1; actionRate -= Time.deltaTime; if (actionRate <= 0) { actionRate = 0.1; //DoSomething(); } } |
- 继承类的时候,void Start()和void Update()不能继承,因此如果要继承这里的行为,就在外面写方法,在里面调用。子类需要在这两个代码块里重复调用。
- OnTriggerEnter()是专用函数,检验碰撞事件,例如:
1 2 3 4 5 6 7 | void OnTriggerEnter (Collider other) { if(other.tag.CompareTo("whatEverYouLike") == 0) //这句表示匹配 { //Do something(); } } |
- 添加声音的时候,如果声音播放到一半,带声音的物体被销毁了,声音就立刻停止。因此如果将声音直接加在粒子物体上,那么粒子物体可能会self deconstruct,如果声音比粒子时间长,声音会中断。
- 播放声音需要有Audio Source,然后才能播放Audio Clip。
- Instantiate就是Spwan物体。
- 加载另一个关卡的时候,除了静态数据以外其它物体都会被销毁。另外,可以在Awake中用DontDestroyOnLoad()声明某个不会被删除,然后在这个物体身上放跨越关卡的东西,比如连续播放的音乐。
- Application.Quit()只有在最终Build版本中才有效,在引擎中测试是无效的。
- Screen.SetResolution(
, , )可以设置启动分辨率。在PC版的project setting中设置分辨率完全没用。