Unity初学入门1 学习笔记 (已初步了解Unity界面与C#脚本语言)
2017-02-20 21:44
363 查看
结束了一个星期的学习 现记录一些知识点
因为在大二有过一段时间的学习 对Unity界面有了一定的认知 对于C#脚本语言也有了一定的了解 所以学习起来也不是挺难
这学期的第一次学习是在我爱自学网学习的
http://www.51zxw.net/list.aspx?cid=454
但是教程是4.X的版本 开始学习的时候还好 但是随着教程地逐渐深入
有许多地方的代码不兼容 以及界面上有些地方找不到
例如给物体加力,教程所给代码为
实际上如果在本人所用的5.5版本中会提示代码需要更新的错误
所以经底下评论查询所得
此代码经验证可行,但泛型有关知识还待完善 所以并不能懂此行代码。
又例如 在Unity4.6版本过后 UI系统改变 使得教程中所有跟UI有关的教程全部无法使用
但我记得在去年的时候我在某个视频网站上看到过并且实践过UI.button 现在查找也记不清是在极客学院还是在慕课网了 并且上周也没有对UI知识进行过多地探讨。
现对知识进行总结
用WASD控制镜头的移动
用QE控制镜头的上下摇动(以及左右等)(运用的是欧拉角的知识)
用HN控制镜头的上下移动(直接控制Y轴)
控制组件代码的使用是否以及组件的使用与否
自己额外做了个蓄力条,用鼠标开火以及力度调整
假想:设置得分 及 基本文字 UI
即Edit-Project Settings-Input
Input.GetAxis即获取轴 即X轴由Horizontal中的AD键控制 Z轴由Vertical中的WS控制
发现一个问题,即此段代码为X轴坐标等于原坐标值乘以时间乘以速度,如若原坐标值为零 那么X轴坐标始终未零 此问题留以后解决
2.
可以将+-25 * Time.deltaTime放在X Y Z轴 可以实现不同轴的欧拉角旋转。
上面2用的 transform.Rotate
这段用的 transform.Translate 上面是旋转 而这个是直接改变XYZ轴 。
4.
上面这段代码为先定义一个MeshRenderer ME 然后如果按下空格键 会将ME 标记为未激活状态 所以有此段代码的脚本如若安放到某个物体 当游戏开始时 按下空格键 此物体就会消失
5.开始射出的时候 给的力量是固定值 我想把它做成一个可以蓄力的动作 开始用的是Input.GetKeyDown方法 后来发现这个方法无法实现按住力量增加 后来用了Input.GetKey方法 明白了前者Time.deltaTime计算时间只是计算按下键键程(即开始按键到按到底)落下的时间 此处在网上寻找了一篇文章 解决了这个问题http://www.lai18.com/content/8869478.html
此处贴上更改后 可以执行的代码
6 .做了一个蓄力之后觉得自己还是能做好东西的 然后正好又看到一段代码 所以把自己的DEMO做成了一个篮球场 想实现一个进球判断的功能
4.x教程中给出的判断位置代码
那么我想把篮筐的位置固定 将此段代码设置到球体上可以判断是否进球
现在的UI系统还没有弄熟悉 4.x教程上写着直接用text改变即可 亲测不行
评论说 应该先创建一个空物体 然后在空物体上设置文字 具体代码为
最后一行代码没有理解 理由同上 与范型有关 不知道GetComponent()是什么意思。
——————————–2月20日割—————————————–
因为在大二有过一段时间的学习 对Unity界面有了一定的认知 对于C#脚本语言也有了一定的了解 所以学习起来也不是挺难
这学期的第一次学习是在我爱自学网学习的
http://www.51zxw.net/list.aspx?cid=454
但是教程是4.X的版本 开始学习的时候还好 但是随着教程地逐渐深入
有许多地方的代码不兼容 以及界面上有些地方找不到
例如给物体加力,教程所给代码为
n.rigidbody.AddForce(fwd*28000);
实际上如果在本人所用的5.5版本中会提示代码需要更新的错误
所以经底下评论查询所得
n.GetComponent<Rigidbody>().AddForce(yun * l);
此代码经验证可行,但泛型有关知识还待完善 所以并不能懂此行代码。
又例如 在Unity4.6版本过后 UI系统改变 使得教程中所有跟UI有关的教程全部无法使用
但我记得在去年的时候我在某个视频网站上看到过并且实践过UI.button 现在查找也记不清是在极客学院还是在慕课网了 并且上周也没有对UI知识进行过多地探讨。
现对知识进行总结
用WASD控制镜头的移动
用QE控制镜头的上下摇动(以及左右等)(运用的是欧拉角的知识)
用HN控制镜头的上下移动(直接控制Y轴)
控制组件代码的使用是否以及组件的使用与否
自己额外做了个蓄力条,用鼠标开火以及力度调整
假想:设置得分 及 基本文字 UI
float x = Input.GetAxis("Horizontal") * Time.deltaTime * speed; float z = Input.GetAxis("Vertical") * Time.deltaTime * speed; transform.Translate(x, 0, z);
即Edit-Project Settings-Input
Input.GetAxis即获取轴 即X轴由Horizontal中的AD键控制 Z轴由Vertical中的WS控制
发现一个问题,即此段代码为X轴坐标等于原坐标值乘以时间乘以速度,如若原坐标值为零 那么X轴坐标始终未零 此问题留以后解决
2.
if (Input.GetKey(KeyCode.Q)) { transform.Rotate(-25 * Time.deltaTime, 0, 0, Space.Self); } if (Input.GetKey(KeyCode.E)) { transform.Rotate(25 * Time.deltaTime, 0, 0, Space.Self); }
可以将+-25 * Time.deltaTime放在X Y Z轴 可以实现不同轴的欧拉角旋转。
if (Input.GetKey(KeyCode.H)) { transform.Translate(0, 5 * Time.deltaTime, 0); } if (Input.GetKey(KeyCode.N)) { transform.Translate(0, -5 * Time.deltaTime, 0); }
上面2用的 transform.Rotate
这段用的 transform.Translate 上面是旋转 而这个是直接改变XYZ轴 。
4.
gameObject.Find("Main Camera".GetComponent(dong).enabled = false;上面这段代码为搜索Main Camera组件 然后获取其dong 脚本 然后将其标记为未激活状态
public MeshRenderer ME; if (Input.GetKey(KeyCode.Space)) {ME.enabled = false;
上面这段代码为先定义一个MeshRenderer ME 然后如果按下空格键 会将ME 标记为未激活状态 所以有此段代码的脚本如若安放到某个物体 当游戏开始时 按下空格键 此物体就会消失
5.开始射出的时候 给的力量是固定值 我想把它做成一个可以蓄力的动作 开始用的是Input.GetKeyDown方法 后来发现这个方法无法实现按住力量增加 后来用了Input.GetKey方法 明白了前者Time.deltaTime计算时间只是计算按下键键程(即开始按键到按到底)落下的时间 此处在网上寻找了一篇文章 解决了这个问题http://www.lai18.com/content/8869478.html
此处贴上更改后 可以执行的代码
if (Input.GetKey(KeyCode.X)) { if (l < Maxl) { l += Time.deltaTime * 500; } else { l = Maxl; } dynamics = GameObject.Find("asd"); dynamics.GetComponent<Text>().text = "dynamics:" + l; } else if (Input.GetKey(KeyCode.C)) { l -= Time.deltaTime * 500; dynamics = GameObject.Find("asd"); dynamics.GetComponent<Text>().text = "dynamics:" + l; }
6 .做了一个蓄力之后觉得自己还是能做好东西的 然后正好又看到一段代码 所以把自己的DEMO做成了一个篮球场 想实现一个进球判断的功能
4.x教程中给出的判断位置代码
if(gameObeject.transform.position.y<0)
那么我想把篮筐的位置固定 将此段代码设置到球体上可以判断是否进球
现在的UI系统还没有弄熟悉 4.x教程上写着直接用text改变即可 亲测不行
评论说 应该先创建一个空物体 然后在空物体上设置文字 具体代码为
public GameObject hand; public int sdshu = 0; hand = GameObject.Find("qwe"); hand.GetComponent<Text>().text = "biubiubiu:" + sdshu;
最后一行代码没有理解 理由同上 与范型有关 不知道GetComponent()是什么意思。
——————————–2月20日割—————————————–
相关文章推荐
- 亲自录制的C#全套编程视频,适合Unity前期脚本语言的学习,想学Unity开发同学可以下载观看
- unity 3D登录界面C#脚本
- Unity 3D开发-C#脚本语言的一些基础用法
- C#语言 第四部分 图形界面编程(四) 尺寸、坐标、边界
- 微软为Ajax 发明C#衍生新脚本语言Script#
- 微软为Ajax 发明C#衍生新脚本语言Script#
- 微软为Ajax 发明C#衍生新脚本语言Script#
- C# via CLR之IL中间语言初步探索
- C#socket类初步了解(客户端与服务端的建立)
- 微软为Ajax 发明C#衍生新脚本语言Script#
- 微软为Ajax 发明C#衍生新脚本语言Script#
- 了解使用ASP.NET的脚本语言
- C#中 动态切换当前界面的语言
- 微软为Ajax 发明C#衍生新脚本语言Script#
- 续c#多语言第二界面
- 微软为Ajax 发明C#衍生新脚本语言Script#
- 通过对一个病毒源码的分析,了解VBS脚本语言的应用
- 微软为Ajax 发明C#衍生新脚本语言Script#
- 微软为Ajax 发明C#衍生新脚本语言Script#
- 微软为Ajax 发明C#衍生新脚本语言Script#