我的Unity3D学习日记-02

最近的内容主要是关于脚本与其他组件的关系。

关于组件的生命周期:

//出生时即执行,脚本被加载时调用一次

//Awake中做一些初始化操作

void Awake(){

//初始化public成员

 

//当对象开始时执行

void Start () {}

//每一帧都会执行

void Update () {

//一般每秒60帧,可以认为1秒调用60}

 

//Update方法调用之后调用

void LateUpdate(){

}

 

//在对象销毁时执行

void OnDestroy(){}

 

//在启用脚本时执行

void OnEnable(){

//可能需要在重新激活时重置的变量}

 

//在被不启用时执行

void Disable(){}

 

//持续调用

Void OnGUI(){

//IMGUI代码需要写在OnGUI方法中}

 

//以固定的频率调用,与图像的刷新帧速率无关

Void FixedUpdate(){

//处理物理的代码放在这里,放在update中可能因为卡顿导致问题}

 

//这些方法并不是继承自MonoBehaviour,而是通过反射调用的一些事件

//这些方法定义了一个脚本从被加载到被销毁的过程中脚本的生命周期

 

当然这些都是比较常用的,在官方manual中还有一张更详细的生命周期图。

 

以下是一部分关于脚本组件代码中的笔记:

每一个脚本类都继承自MonoBehaviour类,这些类叫做运行时类,不能手动实例化(仅受到Unity的控制)

gameObject //获取当前脚本挂载到的游戏对象

Unity中就算使用了C#进行编写脚本,要输出时不能使用Console类,应当使用print();或者Debug.log();

transform表示该脚本挂载的游戏对象身上的transform组件

Transform.position //获取transform身上的各种属性,其他组件的其他属性同理

使用public在类中定义变量可以在unity属性面板中调节

GetComponent<>();//使用泛型的方法获取当前游戏对象上指定类型的组件对象

AddComponent<>(); //为当前游戏对象添加指定组件

 

随便写点:

void Start () {
print("print脚本挂载到了"+gameObject.name+"的身上");
        gameObject.AddComponent<ParticleSystem>();//为当前对象添加一个粒子系统
        ParticleSystem ps = gameObject.GetComponent<ParticleSystem>();//查询到这个粒子系统
        Destroy(ps);//删除该粒子系统
  
	}

using UnityEngine;
using System.Collections;
//使得一个对象的z轴看向目标lookat
public class LookAt : MonoBehaviour {

    public Transform lookat;
	// Use this for initialization
	void Start () {
	
	}
	
	// Update is called once per frame
	void Update () {
        gameObject.transform.LookAt(lookat);
	}
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值