欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Unity语法基础知识:1.实例化,2.给力,3.控制改变方向,4.销毁

程序员文章站 2022-03-31 20:44:07
...

@Unity语法基础知识:1.实例化,2.给力,3.控制改变方向,4.销毁

1.实例化命令:
用Instantiate(要生成的物体,生成的位置,生成物体的旋转角度)

检测鼠标左键(左CTRL) :

public GameObject projectile;

    void Update() {

        if (Input.GetButtonDown("Fire1"))

            Instantiate(projectile, transform.position, transform.rotation) as GameObject;
    }

2.给物体加力:

(1)public void AddForce(Vector3 force, ForceMode mode = ForceMode.Force);
世界坐标空间里的向量。添加到刚体的力
力仅应用于**的刚体。如果游戏对象未**,添加力无效果。
默认刚体是唤醒的。如果力的大小为0,那么刚体不被唤醒。

public class ExampleClass : MonoBehaviour {

    public float thrust;

    public Rigidbody rb;

    void Start() {

        rb = GetComponent<Rigidbody>();

    }

    void FixedUpdate() {

        rb.AddForce(transform.forward * thrust);

    }

}

(2)public void AddForce(float x, float y, float z, ForceMode mode = ForceMode.Force);
在世界坐标空间x轴力的大小。
在世界坐标空间y轴力的大小。
在世界坐标空间z轴力的大小。
添加到刚体的力。
力仅应用于**的刚体。如果游戏对象未**,添加力无效果。
默认刚体是唤醒的。如果力的大小为0,那么刚体不被唤醒。

3.转换方向:
Transform.TransformDirection 变换方向
right:左右;forward:前后;up:上下;

(1)Vector3 TransformDirection(Vector3 direction);
变换方向从局部坐标转换到世界坐标。
这个操作不会受到变换的缩放和位置的影响。返回的向量与direction有同样的长度。
例:

public Transform cam = Camera.main.transform;
public Vector3 cameraRelativeRight = cam.TransformDirection(Vector3.right);
void Example() {

    rigidbody.AddForce(cameraRelativeRight * 10);

}

(2)Vector3 TransformDirection(float x, float y, float z);
变换方向x, y, z从局部坐标到世界坐标。
这个操作不会受到变换的缩放和位置的影响。返回的向量与direction有同样的长度。
例:

public Transform cam = Camera.main.transform;

    public Vector3 cameraRelativeRight = cam.TransformDirection(1, 0, 0);

    void Example() {

        rigidbody.AddForce(cameraRelativeRight * 10);

    }

4.销毁物体:
Destroy(Object obj, float t = 0.0F);
例:

// 5秒后销毁对象
Destroy (gameObject, 5);