一、刚体
接着上节,继续来学习刚体,主要的内容就是施加力方面。
我们创建一个Plane地面,首先我们重置一下地面的属性,然后我们修改一下地面的大小,Scale X轴变成10,Scale Z轴变成10.
把Plane染成绿色,然后我们在创建一个Cube,重置一下,把Cube拉到空中,把Cube染成红色。
然后我们给Cube加一个刚体,然后我们在给Cube加一个脚本Test
1、给当前游戏对象施加一个力
效果:运行之后,Cube落下, 然后按数字键——1,给Cube一个10f的力,持续按1,Cube会上升!
using UnityEngine;
using System.Collections;
public
class
Test
:
MonoBehaviour
{
private
Rigidbody r;
void Start(){
r = GetComponent<
Rigidbody> ();
}
void Update () {
//按数字键1,添加力
if(
Input.GetKey(
KeyCode.Alpha1)){
//给当前游戏对象施加一个力
r.AddForce(
new
Vector3(
0f,
10f,
0f));
}
}
}
2、给当前游戏对象添施加力矩/扭矩,扭矩可以是物体旋转
using UnityEngine;
using System.Collections;
public
class
Test
:
MonoBehaviour
{
private
Rigidbody r;
void Start(){
r = GetComponent<
Rigidbody> ();
}
void Update () {
//按数字键1,添加力
if(
Input.GetKey(
KeyCode.Alpha1)){
//给当前游戏对象施加一个力
// r.AddForce(new Vector3(0f,20f,0f));
//给当前游戏对象添施加力矩/扭矩,扭矩可以是物体旋转
r.AddTorque(
new
Vector3(
0f,
20f,
0f));
}
}
}
3、给游戏对象在指定的位置上添加一个力
using UnityEngine;
using System.Collections;
public
class
Test
:
MonoBehaviour
{
private
Rigidbody r;
void Start(){
r = GetComponent<
Rigidbody> ();
}
void Update () {
//按数字键1,添加力
if(
Input.GetKey(
KeyCode.Alpha1)){
//给当前游戏对象施加一个力
// r.AddForce(new Vector3(0f,20f,0f));
//给当前游戏对象添施加力矩/扭矩,扭矩可以是物体旋转
// r.AddTorque(new Vector3(0f,20f,0f));
//给游戏对象在指定的位置上添加一个力
r.AddForceAtPosition (
new
Vector3(
0f,
10f,
0f),
new
Vector3(
0.5f,
0.5f,
0.5f));
}
}
}
4、在指定位置添加一个爆炸力
using UnityEngine;
using System.Collections;
public
class
Test
:
MonoBehaviour
{
private
Rigidbody r;
void Start(){
r = GetComponent<
Rigidbody> ();
}
void Update () {
if(
Input.GetKeyDown(
KeyCode.Alpha1)){
//给当前游戏对象施加一个力
// r.AddForce(new Vector3(0f,20f,0f));
//给当前游戏对象添施加力矩/扭矩,扭矩可以是物体旋转
// r.AddTorque(new Vector3(0f,20f,0f));
//给游戏对象在指定的位置上添加一个力
// r.AddForceAtPosition (new Vector3(0f,10f,0f),new Vector3(0.5f,0.5f,0.5f));
//在指定位置添加一个爆炸力
r.AddExplosionForce(
1500f,
Vector3.zero,
4f);
}
}
}