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);
        }

    }


 

 

转载于:https://www.cnblogs.com/little-sun/p/4367279.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue-Unity-WebGL 是一个具有极高可扩展性和灵活性的 Unity3D web 端开发框架,它将 Vue.js 与 Unity Web Player 和 WebGL 等技术相结合,为开发者提供了最佳的解决方案。 Vue-Unity-WebGL 框架具有很高的兼容性和易用性,开发者可以更加灵活地应用该框架来定制自己的项目。由于该框架具备了许多优秀的特性,如自适应布局、多平台支持等,使得开发者可以轻松地实现用户体验和开发效率的提升。此外,Vue-Unity-WebGL 框架不仅提供了可视化开发工具,还提供了完整的运行环境,为开发者提供了优秀的开发体验。 Vue-Unity-WebGL 框架的另一个重要特点是其大量的插件与扩展功能,这些插件和扩展可以为项目的开发和管理提供坚强的技术支持。比如,通过 vue-router 可以控制路由,Vue-Unity-WebGL 可以协作处理组件数据和 Unity3D 渲染等复杂的操作,而 Vuex 则可以使开发者方便地处理应用数据流和组件状态的管理。这些插件和扩展功能极大地提高了 Vue-Unity-WebGL 框架的可扩展性和灵活性,使得开发者可以更加容易地进行定制。 综上所述,Vue-Unity-WebGL 框架是一个快速、可靠且强大的解决方案,这使得开发者能够轻松地编写出高质量的 Unity3D web 应用程序。该框架具有大量的功能,实现可扩展性、灵活性、易用性和可维护性,比其他框架更具有竞争力。在未来的发展中,Vue-Unity-WebGL 框架将会被更多的开发者喜爱和应用,并在技术社区中拥有更广泛的影响力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值