Unity-3d Day04

  东西比较多  比较杂 还有数学知识  我日~~~

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

MonoBehaviour类继承关系:

MonoBehavior类常⽤⽅法:

  Awake() 当⼀个脚本实例被载⼊时Awake被调⽤。
  Start() Start仅在Update函数第⼀次被调⽤前调⽤。
  OnEnable() 当对象变为可⽤或激活状态时此函数被调⽤。
  Update() 当MonoBehaviour启⽤时,其Update在每⼀帧被调⽤。
  FixedUpdate() 每⼀帧都在调⽤此⽅法。当处理Rigdibody时
  FixedUpdate应该代替Update⽅法
  LateUpdate() 每⼀帧都在调⽤此⽅法。当每⼀帧的Update⽅法全部执⾏完后,此⽅法开始被调⽤

  OnGUI() 渲染和处理GUI事件时调⽤。
  OnDisable() 当对象变为不可⽤或⾮激活状态时此函数被调⽤。
  OnDestroy() 当MonoBehaviour将被销毁时,这个函数被调⽤。

Transform类:

Transform组件作⽤:
  1. 负责游戏对象的变换
  2. 维持⽗⼦关系

Transform组件变量:
  position 在世界坐标系中,transform的位置
  localPosition 相对于⽗级的变换的位置
  eulerAngles 旋转作为欧拉⾓度
  localEulerAngles 相对于⽗级的变换的旋转欧拉⾓度
  rotation 在世界坐标系中物体变换的旋转⾓度作为
  Quaternion储存
  parent 返回物体变换的⽗级
  root 返回最⾼层次的

Transform组件⽅法:
  Translate 移动⼀个transform
  Rotate  eulerAngles.z度围绕z轴
      eulerAngles.x度围绕x轴
      eulerAngles.y度围绕y轴
  RotateAround 按照多少⾓度在世界坐标系中的某位置轴旋转物体
  LookAt 向前向量指向⺫标的当前位置,旋转物体
  Find 通过名字查找物体并返回,返回值类型为transform

Quaternion(四元数):

  operator * 四元数的叉乘,可⽤来连接两个旋转属性
  identity 该四元数没有旋转
  eulerAngles 返回表⽰旋转的欧拉⾓度⽅法
  Euler 返回⼀个旋转⾓度,绕x轴旋转x度,绕y轴旋转y度,绕z轴旋转z度

Vector3 (三维向量):
  变量:  normalized  magnitude  sqrtMagnitude
  ⽅法:Normalize  Cross  Dot  Project  Distance  Lerp  Slerp


Time类:

time 从游戏开始到现在的所⽤时间,是以秒计算的

deltaTime 获取上⼀次Update()⽅法执⾏的时间到当次执⾏
Update()⽅法时间的差值fixedDeltaTime 在物理和其他固定帧速率进⾏更新上⼀帧所消耗的时间,以秒计算
timeScale⽤于减缓运动效果。当timeScale传递时间为1.0时和实时⼀样;当timeScale传递时间0.5时⽐实时时间慢⼀半;当timeScale传递时间为0时游戏基本暂停

Mathf:

  Lerp 两个浮点数之间进⾏插值
  Clamp 返回⼀个限制值
  Sin 计算并返回浮点型的正弦值
  Cos 计算并返回浮点型的余弦值
  Abs 计算并返回指定参数的绝对值
  Max 返回两个值之中最⼤的值
  Min 返回两个值之中最⼩的值
  Sqr 返回平⽅根
  PI 圆周率

数学方面的就不写了  全都是各种向量啊什么的。

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class QuatScript : MonoBehaviour {
    //public int x;
    //public int y;
    //public int z;
    //public Transform cylinder;
    //public Transform sphere;

    public Transform time;
    public Transform deltaTime;
    public Transform fixedDeltaTime;
    public Transform timeScale;
    float lerp = 0;

    // Use this for initialization
    void Start () {
        //sphere = transform.Find("Sphere");
    }
    
    // Update is called once per frame
    void Update () {

        //float rad = Mathf.PI / 2;
        //float xh = Mathf.Sin(rad / 2) * x;
        //float yh = Mathf.Sin(rad / 2) * y;
        //float zh = Mathf.Sin(rad / 2) * z;
        //float wh = Mathf.Cos(rad / 2);

        //Quaternion q = new Quaternion(xh, yh, zh, wh);
        ////欧拉角转化为四元数
        //Quaternion q = Quaternion.Euler(90f,0f,0f);
        ////四元数转化欧拉角
        //Quaternion q = Quaternion.Euler(90f, 0f, 0f);
        ////输出四元数
        //transform.rotation = q;
        ////转                    中心点         沿x轴转,rignt,up,foward    速度
        //transform.RotateAround(new Vector3(1,1,1),Vector3.up,80*Time.deltaTime);

        //float hor = Input.GetAxis("Horizontal");
        //float ver = Input.GetAxis("Vertical");
        //transform.position += Vector3.forward * ver;
        //transform.position += Vector3.right * hor;

        //transform.LookAt(cylinder);
        //sphere.transform.RotateAround(cylinder.position, Vector3.up, 80 * Time.deltaTime);


        time.GetComponent<Text>().text = Time.time.ToString();
        deltaTime.GetComponent<Text>().text = Time.deltaTime.ToString();
        fixedDeltaTime.GetComponent<Text>().text = Time.fixedDeltaTime.ToString();
        timeScale.GetComponent<Text>().text = Time.timeScale.ToString();

        
        //lerp = Mathf.Lerp(lerp, 100f, 0.5f);


    }

}

今天的代码没怎么整理 不过全都在上面了

转载于:https://www.cnblogs.com/little-sun/p/4370336.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、付费专栏及课程。

余额充值