我有在平台上行走的游戏角色。还有从天而降的块。当角色在地面上并且一个块击中头顶时我想制作块运动。我最后一组代码有问题
rigidbody2D.isKinematic("Block",true);
代码在我的角色上,我想要它,所以如果它碰到了它冻结了
using UnityEngine;
using System.Collections;
public class Stop : MonoBehaviour {
bool grounded = false;
public Transform groundCheck;
float groundRadius = .5f;
public LayerMask whatIsGround;
void FixedUpdate ()
{
grounded = Physics2D.OverlapCircle(groundCheck.position, groundRadius, whatIsGround);
}
void OnCollisionEnter2D(Collision2D col)
{
if (grounded && col.gameObject.tag == "Block")
{
rigidbody2D.isKinematic("Block",true);
}
}
}
答案 0 :(得分:1)
问题在于" col"已经定义它是一个2D对象。所以你必须从ridgidbody中取走2D。这应该有用。
col.rigidbody.isKinematic = true;
答案 1 :(得分:0)
isKinematic是一个bool属性,而不是一个函数。设置如下:
col.rigidbody.isKinematic = true;
更新:Collision2D使用rigidbody。 Collider2D(针对触发器)使用rigidbody2D或attachedRigidbody。可以使用col。gameObject。rigidBody2D。