Unity-笔记文档格式.docx
- 文档编号:13065748
- 上传时间:2022-10-04
- 格式:DOCX
- 页数:42
- 大小:5.93MB
Unity-笔记文档格式.docx
《Unity-笔记文档格式.docx》由会员分享,可在线阅读,更多相关《Unity-笔记文档格式.docx(42页珍藏版)》请在冰豆网上搜索。
6、transform.FindChild(“Cube”);
获取当前游戏对象叫做Cube的对象,如果多个默认返回第一个
7、transform.Position:
世界坐标系中的位置
8、transform.locaPosition:
局部坐标系中的位置
9、transform.rotation;
世界坐标系中的位置四元数
10、transform.localRotation;
局部坐标系中的位置四元数
11、transform.localScale;
x,y,z轴缩放比例操作
12、transform.Translate;
对象的位置移动操作
13、transform.Rotate;
对象的轴旋转操作
14、transform.eulerAngles=newVector3(0f,45f,0f);
欧拉角-属性
回调方法
UnityC#脚本默认方法继承MonoBehaviour被叫做运行时类,运行时不能手动实例化
publicclasshello:
MonoBehaviour //默认继承MonoBehaviour类
{
//Usethisforinitialization //在游戏开始的第一帧运行一次
voidStart()
{
}
//Updateiscalledonceperframe //每一帧调用一次
voidUpdate()
}
Unity脚本生命周期系统自带9个回调方法
这写方法都不是MonoBehaviour中定义的方法,而是通过反射调用的一些事件
一:
游戏开始的第一帧执行一次的方法:
Awake:
在游戏开始的第一帧执行一次,你的脚本组件无论是可用还是不可用,它都会执行,在Awake中做一些初始化操作
OnEnable:
当脚本组件激活的时候执行一次被调用
Start:
游戏开始第一帧执行一次,在第一次调用Update之前调用一次Start,做一些初始化操作,初始化public成员
二:
游戏开始后持续执行
FixedUpdate:
每0.02秒执行一次,固定时间间隔默认0.02秒调用,一般我们会把处理物理的代码放在这里
Update:
每帧执行一次,执行的次数取决于计算机的配置(用于写人物移动逻辑)
LateUpdate:
每帧执行一次,(用于写摄像机移动逻辑),在Update方法调用完之后调用
三:
OnGUI持续调用
OnGUI:
IMGUI-代码需要写在OnGUI方法中每帧执行两次,游戏开始到结束持续执行
四:
不可用的时候执行
OnDisable:
当脚本组件处于不可用状态的时候执行一次,取消激活状态后调用
OnDestroy:
当脚本组件被销毁时,执行一次
常用调式方法:
1、Print() 属于MonoBehaviour类的成员
2、DEbug.Log () 独立,密封的类常用调式方法
Ctrl+shift+N新建空物体
Debug.DrawLine()创建一条射线
//画一条射线
Debug.DrawRay(newVector3(0,0,0),newVector3(0,0,1),Color.red);
设置脚本执行顺序:
Edit-ProjectSettings-ScripeExecutionOrder
Unity自身也有一个object类
常用类
一、GameObject游戏对象类
01:
gameObjectthis.获取当前脚本所挂载的游戏对象,在属性面板中能够修改的组件都能通过脚本进行修改获取
1、gameObject.activeSelf:
游戏对象激活状态
2、gameObject:
表示当前脚本组件所挂载的游戏对象,返回true或false
3、gameObject.SetActive(false):
设置游戏对象的激活状态
4、gameObject.name;
表示游戏对象的名称
5、gameObject.tag;
表示游戏对象的标签
6、gameObject.layer;
表示游戏对象的层
7、GameObject.Find("
MainCamera"
);
通过游戏对象的名称进行查找,返回的是一个游戏对象
8、GameObject.FindWithTag("
Player"
通过游戏对象的标签查找游戏对象,返回一个游戏对象
9、GameObject.FindGameObjectsWithTag("
Hot"
通过游戏对象的标签查找多个游戏对象,返回一个游戏对象数组
10、gameObject.AddComponent<
>
();
给游戏对象添加指定类型的组件
11、GameObject.Destroy(gameObject);
立刻销毁游戏对象
12、GameObject.Destroy(gameObject,5f);
延时销毁游戏对象float类型的参数
销毁当前脚本所挂载的游戏对象
获取组件的方法:
普通的成员方法
//1找到摄像机对象声明一个对象进行接收
GameObjectcamera=GameObject.FindWithTag("
MainCamera"
//2找到摄像机身上的组件<
表示得到组件的类名称无参数,小括号
floatdp=camera.GetComponent<
Camera>
().depth;
//打印结果
Debug.Log(dp);
//找到Cube输出位置坐标
Vector3pos=GameObject.Find("
Cube"
).GetComponent<
Transform>
().position;
Debug.Log(pos);
transform:
表示当前游戏组件所挂载的游戏对象身上的Transform组件
this.GetComponent<
GameObjectClass>
获取当前游戏对象身上的组件
对于父物体与子物体的坐标位置,子物体分别有相对于父物体的世界坐标点与自己的坐标点
//让物体产生移动
transform.position+=newVector3(0,0,0.01f);
//每秒走0.01秒
transform.Translate(newVector3(0,0,0.01f));
//与上一个一样的效果
//让物体产生旋转
transform.Rotate(newVector3(1,0,0));
//让物体每帧延x轴转1度
transform.eulerAngles+=newVector3(0,0,2);
//绕着一个物体旋转
transform.RotateAround(newVector3(0,0,0),newVector3(0,1,0),50);
星球的自转与公转
publicclassStarRun:
MonoBehaviour
//星球的直径
publicfloatradius=0.5f;
//星球的材质颜色
publicColorcolor;
//星球自转的速度
publicfloatrotationSpeed=3f;
//星球的公转速度
publicfloatrotationAroundSpeed=3f;
//公转所绕行的星球
publicTransformaroundPoint;
//设置球体半径,半径为1的时候*半径*2等于直径
transform.localScale=Vector3.one*radius*2;
//星球的材质,设置球体的颜色
GetComponent<
MeshRenderer>
().material.color=color;
Rotation();
AroundRotation();
///<
summary>
///自转
/summary>
voidRotation()
//设置星球的自转
transform.Rotate(Vector3.up*rotationSpeed);
///公转
voidAroundRotation()
//设置星球的公转,位置,方向,速度
transform.RotateAround(aroundPoint.position,Vector3.up,rotationAroundSpeed);
坦克发射子弹
1:
publicclassFireMoeBullet:
//Bullet预设体
publicGameObjectbullet;
Fire();
//子弹Bullte发射的方法
voidFire()
if(Input.GetMouseButtonUp(0))//如果按下了鼠标左键
{
//通过预设体在炮筒方向生成一个子弹bullet,强制转换
GameObjectcurrentBullet=(GameObject)Instantiate(bullet,transform.GetChild(3).position,Quaternion.identity);
//给子弹一个方向
currentBullet.GetComponent<
MoveBullte>
().dir=transform.forward;
}
2:
publicclassMoveBullte:
//bullet移动
publicf
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Unity 笔记