如何制作固定物体

我剩下2个物体没有刚体,右边是刚性体(是Kinematic = false)。我可以通过左边的和右边的我可以移动。如何使角色不通过并移动对象?如何制作固定物体

没有刚体

enter image description here

随着刚体

enter image description here

enter image description here

enter image description here

enter image description here

using System.Collections; 

using UnityEngine;

public class Person_controller : MonoBehaviour {

public float rotationPeriod = 0.3f;

public float sideLength = 1f;

bool isRotate = false;

float directionX = 0;

float directionZ = 0;

Vector3 startPos;

float rotationTime = 0;

float radius;

Quaternion fromRotation;

Quaternion toRotation;

void Start() {

radius = sideLength * Mathf.Sqrt (2f)/2f;

}

void Update() {

float x = 0;

float y = 0;

x = Input.GetAxisRaw ("Horizontal");

if (x == 0) {

y = Input.GetAxisRaw ("Vertical");

}

if ((x != 0 || y != 0) && !isRotate) {

directionX = y;

directionZ = x;

startPos = transform.position;

fromRotation = transform.rotation;

transform.Rotate (directionZ * 90, 0, directionX * 90, Space.World);

toRotation = transform.rotation;

transform.rotation = fromRotation;

rotationTime = 0;

isRotate = true;

}

}

void FixedUpdate() {

if (isRotate) {

rotationTime += Time.fixedDeltaTime;

float ratio = Mathf.Lerp(0, 1, rotationTime/rotationPeriod);

float thetaRad = Mathf.Lerp(0, Mathf.PI/2f, ratio);

float distanceX = (-directionX * radius * (Mathf.Cos (45f * Mathf.Deg2Rad) - Mathf.Cos (45f * Mathf.Deg2Rad + thetaRad)))*sideLength;

float distanceY = radius * (Mathf.Sin(45f * Mathf.Deg2Rad + thetaRad) - Mathf.Sin (45f * Mathf.Deg2Rad));

float distanceZ = directionZ * radius * (Mathf.Cos (45f * Mathf.Deg2Rad) - Mathf.Cos (45f * Mathf.Deg2Rad + thetaRad));

transform.position = new Vector3(startPos.x + distanceX, startPos.y + distanceY, startPos.z + distanceZ);

transform.rotation = Quaternion.Lerp(fromRotation, toRotation, ratio);

if (ratio == 1) {

isRotate = false;

directionX = 0;

directionZ = 0;

rotationTime = 0;

}

}

}

}

回答:

如果isKinematic启用,部队,碰撞或接缝不会再影响刚体。该刚体将动画或脚本控制的完全控制下,通过改变transform.position

Title Chart of collision on the bottom of this page

以上是 如何制作固定物体 的全部内容, 来源链接: utcz.com/qa/258098.html

回到顶部