Unity核心对象

1.Transform

Transform组件是Unity3D的重点之一,主要用于控制物体的旋转、移动、缩放。

A、transform.position位置移动

transform.position = new Vector3(+10, 0, 0);

B、transform.rotation旋转角度

transform.rotation = Quaternion.Euler(0, 45, 0);

transform.localScale 自身缩放

transform.localScale=new Vector3(2,1,1);

RotateAround (point : Vector3, axis : Vector3, angle : float) : void

按照多少度在世界坐标的某位置轴旋转物体。

一个游戏对象围绕另一个游戏对象旋转

transform.RotateAround(sphere.position,Vector3.up,1)

transform.rotation和Rotate的区别:

Rotate()方法是:旋转多少度。在原有的基础上累加,即旋转了多少角度

rotation属性是:旋转到某个角度,就是是在update中每帧都执行。但每次旋转到的角度都是5,所以是旋转到5度。

比如你只想让他旋转到多少, 用rotation; 假如想让他一直转,可以用Rotate

rotation直接改变了数值, 以达到旋转效果

Rotate应用一个的旋转角度每秒1度慢慢的旋转物体

2.Vector3

物体的坐标向量
 

3.GameObject
 

GameObject和gameObject的区别 

GameObject是游戏对象类的基类

gameObject是脚本挂载的对象

4.Time

Time.deltaTime:表示从上一帧到当前帧的时间,以秒为单位。

Time.timeScale:时间缩放,默认值为1,若设置<1,表示时间减慢,若设置>1,表示时间加快,可以用来加速和减速游戏,非常有用。

5.销毁与克隆
//在预设体的位置克隆游戏对象

GameObject go1=Instantiate(cube);

//在固定位置克隆游戏对象

//Quaternion.identity 游戏对象不旋转:Quaternion(0,0,0,0)

GameObject go2 =Instantiate(cube,new Vector3(0,0,5),Quaternion.identity);

销毁

Destroy(go1);    //直接销毁对象go1

Destroy(go2,3);   //停3秒后销毁对象go2

6.Random
 

float a=Random.value;                //返回0.0(包括)到1.0(包括)之间的数。
 int b=Random.Range(0,100) ;         //包括最小但不包括最大 

float c=Random.Range(0.0f,5.5f);    //包括最大和最小
 

物理引擎
1.刚体


2.碰撞器 XX Collider


(一)碰撞器是一群组件,包含了很多种类,比如:Box Collider,Capsule Collider等,这些碰撞器应用的场合不同,但必须加到GameObject身上。

(二)所谓触发器,只需要在检视面板中碰撞器组件中勾选Is Trigger属性选择框。

(三)给主角添加刚体(Rigidbody)组件,并且取消刚体组件的重力选项UseGravity。

碰撞器
// 碰撞接触的那一帧被调用 

    void OnCollisionEnter(Collision collision) { 

        Debug.Log("enter"); 

        Debug.Log(collision.gameObject.name); 

    } 

    // 碰撞接触的每帧都被调用 

    void OnCollisionStay(Collision collision) { 

        Debug.Log("Stay"); 

    } 

    // 碰撞结束被调用 

    void OnCollisionExit(Collision collision) { 

        Debug.Log("Exit"); 

    } 

触发器


触发器可以穿透,所以把重力去掉

// 触发接触的那一帧被调用 

    void OnTriggerEnter(Collider other) { 

        Debug.Log("enter"); 

        Debug.Log(other.gameObject.name); 

    } 

    //触发接触的每帧都被调用 

    void OnTriggerStay(Collider other) { 

        Debug.Log("Stay"); 

    } 

    // 触发结束被调用 

    void OnTriggerExit(Collider other) { 

        Debug.Log("Exit"); 

    } 屏幕坐标转世界坐标

  Vector3 mousePos = Input.mousePosition;//获取鼠标位置
        Vector3 dir = mousePos - Camera.main.transform.position;//偏移量
        Vector3 nomaidir = Vector3.Project(dir, Camera.main.transform.forward);//矢量
        Vector3 worldPos = Camera.main.ScreenToWorldPoint(new Vector3(mousePos.x, mousePos.y, nomaidir.magnitude));//把鼠标的屏幕坐标转换成世界坐标
      
        if (Input.GetMouseButtonDown(0))
        {
            GameObject go = Instantiate(qiuti, new Vector3(worldPos.x, worldPos.y, worldPos.z - 5), Quaternion.identity);
            Destroy(go, 3f);
        }

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值