给Unity中的物体加上C#的代码,并获取物体的属性
- 准备
-
- 1、Unity
- 2、VisualStudio
- 一、第一步
-
- 1、打开软件
- 2、各种设置
- 二、第二步
-
- 1、各种创建
- 2、创建空代码
- 三、进阶(获取立方体的Transform属性并打印)
-
- 1、写代码,获取物体属性并打印
- 2、效果预览
- 3、Start函数和Update函数的区别
- 特别鸣谢
准备
(基本为废话,有些基础的可以直接跳过)
1、Unity
软件——Unity(5.3.4版本)或者(2018)
这俩选一个就好,不需要两个都有
这是我用的两个版本,亲测过,别的没用过,应该差别不大
2、VisualStudio
简称VS,2017版或者2019版
至此准备工作完成
一、第一步
1、打开软件
新建一个场景(点击这个new),然后起好名字、选好储存位置后点击Create project
2、各种设置
- 打开Unity后是是这个样子
- 我习惯把他的布局格式改成2 By 3的,改好之后是这样
五个板块分别是:
软件内各区域的名字 | 作用及我的理解 |
---|---|
Scene | 场景 |
Game | 游戏画面(玩家视角) |
Hierarchy | 层次结构(物体层级) |
Project | 各种组件 |
Inspector | 监视(物体详情) |
- 在Edit菜单中打开Preferences…
- 选择打开第二个,依图更改里面的External Script Editor(这里我用的vs2019版,根据个人使用的软件修改打开方式)
二、第二步
1、各种创建
-
在示例场景(Sample Scene)中单击右键选择一个物体(如:正方体)
-
创建好了之后在Project(组件)里右键Assets→Create→Folder创建一个新文件夹专门用来放代码(可以改名,我改为code)
2、创建空代码
-
在code里右键创建一个新的C#文件,改名并打开
我这里改为GetTrsndFrom,打开后一定要注意C#中命名空间的名字是否和C#文件名一致(下面两张图片),这两个地方一定要一样,否则出错将会是致命的。
-
在Unity中用鼠标将代码拖到立方体的Inspector(物体详情内)。
-
打开刚刚的C#文件,里面的代码应该是这个样子
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GetTrsndFrom : MonoBehaviour {
// Use this for initialization
void Start () {
//此函数里的代码只会在游戏开始第一帧运行一次;
}
// Update is called once per frame
void Update () {
//此函数里的代码会在游戏开始后每帧都运行;
}
}
到这里算是完成了在Unity中创建一个C#空代码,以下为进阶,如何获取并打印正方体的Transform属性
三、进阶(获取立方体的Transform属性并打印)
1、写代码,获取物体属性并打印
//比如我们需要获取正方体的Transfor属性需要如下代码
var tmpSize = GameObject.Find("Cube").GetComponent<Collider>().transform;
Debug.Log(tmpSize);
//写在Start函数和Update函数中有什么区别说过了,亲们可以分别试一试
看不懂的不用着急,这些可以先复制下来,后面慢慢学,完成后保存、切换到Unity界面点击中间上方的开始按钮
2、效果预览
打印效果如下:
- 直接点击开始稍等片刻,等待游戏运行起来就会在最左下角看到一行字
- 单击这个会打开一个对话框,显示更多信息
- 双击这个会打开运行这行的代码,并选中运行的具体某一行
- 将来代码中无误的情况下,这里会经常报错,双击打开就可以看到是哪一行错了,最常遇到的错误就是 “ 空指针异常 ” 如下图:
3、Start函数和Update函数的区别
直接区别就是一个只在游戏开始时运行一帧,一个每一帧都会运行,具体效果留给大家尝试。
特别鸣谢
感谢大家的支持,对于一个新手来说能有这么多的浏览量我非常的诧异和兴奋,也是你们的这个惊喜,给了我写下去的理由,我也深深的体会到了有人关注是会给人多么强大的动力,所以在这里特别鸣谢我的粉丝们,感谢你们的关注,我回继续加油,如果文章有什么不足或者有什么问题和建议都可以直接 私信我或者评论留言,每一条我都会仔细阅读并回复的,谢谢大家的支持!!!