Unity-3d Day03

尼玛今天研究一天脚本啊    这个坑啊

好多东西要记而且搞不太清楚哪能改哪是固定的  

多用用应该会好很多吧

这个是函数在脚本里的执行顺序

using UnityEngine;
using System.Collections;

public class HelloScript : MonoBehaviour
{
    //初始化写在awake或start
    private GameObject gameobj;
    private GameObject[] gameob;
    void Awake()
    {
        Debug.Log("Hello!~");
        print("awake");
    }
    void OnEnable()
    {
        print("onEnable");
    }

    // Use this for initialization
    void Start()
    {
        print("start1");

        //active = false;   //摄像机不启动
        //gameobj = GameObject.Find("Cube");
        gameob = GameObject.FindGameObjectsWithTag("Player");

    }
    //一般写一些力啊  什么的  物理方面的
    void FixedUpdate()
    {
        print("fixedpudate");
    }
    // Update is called once per frame
    //实时刷新的写在update
    void Update()
    {
        print("update");
        //gameobj.transform.Rotate(0f, 1f, 2f);
        foreach (GameObject item in gameob)
        {
            item.transform.Rotate(0f, 1f, 2f);
        }
    }
    void LateUpdate()
    {
        print("lateupdate");
    }
    void OnGUI()
    {
        print("onGUI");
    }
    void OnDisable()
    {
        print("onDisable");
    }
    void OnDestroy()
    {
        print("ondestroy");
    }

}

 

MonoBehavior类:
MonoBehaviour 表示一个单一的行为。Unity中用户对游戏对象的操作被分割成若干个
单一行为,每个单一行为都作为一MonoBehaviour类来封装。继承自MonoBehaviour的类,不需要自己创建它
的实例,也不能自己创建(如 new 类名)。因为所有从MonoBehaviour继承过来的类,unity都会自动创建实例,并且调用被重载的方
法,如我们经常用到的Awake,Start, Update等。而普通类,可以用new来创建实例了。

Gameobject类:常用方法:

  SetActive( bool value)
  Find( String name)
  FindWithTag( string tag)
  FindGameObjectsWithTag( string tag)

Input类:常用的  有键盘输入和鼠标输入

void Update () {

        //鼠标输入
        if (Input.GetMouseButtonDown(0))
        {
            print("左键");
        }
        if (Input.GetMouseButton(1))
        {
            print("右键");
        }
        if (Input.GetMouseButton(2))
        {
            print("中键");
        }
        
}
void Update () {

        //键盘输入
        if (Input.GetKey(KeyCode.W))
        {
            transform.Translate(0f, 0f, -1f);
        }
        if (Input.GetKey(KeyCode.A))
        {
            transform.Translate(-1f, 0f, 0f);
        }
        if (Input.GetKey(KeyCode.S))
        {
            transform.Translate(0f, 0f, 1f);
        }
        if (Input.GetKey(KeyCode.D))
        {
            transform.Translate(1f, 0f, 0f);
        }

}

缓慢走的方法:

        Vector3 source = sphere.transform.position;
        Vector3 target = transform.position;
        Vector3 position = Vector3.Lerp(source, target, Time.deltaTime);
        sphere.transform.position = position;

 

键盘输入控制角色的另一种方式,是不是有点屌

void Update () {

        float horizontal = Input.GetAxis("Horizontal");
        float vertical = Input.GetAxis("Vertical");
        transform.position += Vector3.forward * vertical;
        transform.position += Vector3.right * horizontal;
    }


今天呢还研究了一下简单的跟随  类似游戏里的宠物的行为

void Update()
    {if (Vector3.Distance(transform.position, master.transform.position) > 4)
        {
            transform.LookAt(master.transform.position);
            transform.Translate(Vector3.forward);
        }

    }


 

 

posted @ 2015-03-25 22:44  小の太阳  阅读(207)  评论(0编辑  收藏  举报