Unity_Lesson02

回调方法

/*
 * 如果脚本组件加到游戏物体上,脚本一定要继承自MonoBehaviour
 */
public class ControlMusic : MonoBehaviour {

    // 回调方法:达到一定的条件后,能够自动执行的方法称为回调方法
    // 回调方法只有写出来以后,才会运行

    //唤醒脚本,即使脚本不处于激活状态,该方法仍然执行
    //该方法只执行一次
    private void Awake()
    {
        Debug.Log("Awake");
    }
    //脚本是否能用,该方法可以执行多次,每把脚本激活一次,
    //方法执行一次
    private void OnEnable()
    {
        Debug.Log("onEnable");
    }
    //只执行一次,在脚本里面通常使用Awake和Start给脚本中的字段赋初始值
    private void Start()
    {
        Debug.Log("Start");
    }
    //按固定帧速率重复执行,他的执行频率和固定时间间隔有关
    private void FixedUpdate()
    {
        //有关物理引擎的代码放在该方法里面
        Debug.Log("FixedUpdate");
    }
    private void Update()
    {
        //每一帧都要运行的代码放在该方法里面
        Debug.Log("Update");
    }
    private void LateUpdate()
    {
        //有关摄像机的相关代码放在该方法里面
        Debug.Log("LateUpdate");
    }

    //当脚本由激活状态到不激活状态调用该方法
    private void OnDisable()
    {
        Debug.Log("OnDisable");
    }
    //当脚本组件销毁时调用
    private void OnDestroy()
    {
        Debug.Log("OnDestroy");
    }

在这里插入图片描述

GameObject

/*
 * 解决问题的大致流程:
 * 1.先得到游戏物体
 * 2.再得到游戏物体上的组件对象
 * 3.通过组件对象调用属性和方法
 */
public class Part03 : MonoBehaviour {

    public GameObject sphere;
	void Start () {
        name = "Hero";
        //gameObject 指的是脚本所在的游戏物体
        gameObject.isStatic = true;
        //得到游戏所在游戏物体的其他组件对象
        GetComponent<BoxCollider>().isTrigger = true;




        //以下的代码是找其他的游戏物体,进而更改其相关数据
        //在场景中找到一个指定名字一样的游戏物体,如果游戏物体是隐藏的,通过名字或者tag值是找不到该游戏物体的
        //sphere = GameObject.Find("Sphere");
        //给游戏物体赋值tag值
        //sphere.tag = "Player";

        //通过tag值找到游戏物体
        //sphere = GameObject.FindWithTag("Player");
        //sphere.name = "Enemy";
        //sphere.isStatic=true;
        //设置物体是否可见
        //sphere.SetActive(false);
        //Debug.Log(sphere.name);
        //得到小球上的SphereCollider组件对象
        sphere.GetComponent<SphereCollider>().isTrigger = true;
        //得到和tag值相同的所有游戏物体
        GameObject[] objs = GameObject.FindGameObjectsWithTag("Player");
        foreach (var item in objs)
        {
            Destroy(item,3);
        }
        Debug.Log(objs.Length);
	}
	
	// Update is called once per frame
	void Update () {
		
	}
}

Transform常用的

public class part04 : MonoBehaviour {

public Transform sphere;
void Start () {
    //使用transform 来代替 GetComponent<Transform>()
    //Debug.Log(transform.position);
    //更改游戏物体的世界坐标 
    //transform.position = new Vector3(2, 2, 2);
    //物体的本地坐标
    //Debug.Log(transform.localPosition);
    //得到选择的欧拉角,他是一个Vector3类型
    //transform.eulerAngles = new Vector3(0, 45, 0);
    //Debug.Log(transform.eulerAngles);
    //rotation的返回值是一个四元数
    //Debug.Log(transform.rotation);
    //设置物体的父物体
    //transform.parent = sphere;
    //得到游戏物体最外层的父物体
    //Debug.Log(transform.root.name);

    //移动一定的向量
    //transform.Translate(sphere.position - transform.position);
    //通过名字找到最近一层的子物体
    //Transform t= transform.Find("Sphere");
    //Debug.Log(t.tag);
    //Transform t =transform.GetChild(0).GetChild(0);
    通过路径找到子物体
    //t = transform.Find("Capsule/Sphere");
    //Debug.Log(t.name);
    //看向游戏物体
    
}


void Update () {
    //乘以Time.deltaTime表示1秒钟指定的向量,如果不乘,表示1帧移动
    //指定的向量,物体默认沿本地坐标移动,Space.World沿世界坐标移动
    //transform.Translate(new Vector3(1, 0, 0)*Time.deltaTime*3,Space.World);
    //物体旋转
    //transform.Rotate(new Vector3(0, 10, 0),Space.World);

    //transform.RotateAround(sphere.position, -sphere.right, 10);
    transform.LookAt(sphere);
}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值