(抱歉,如果格式化或其他任何东西是不正确,一直在使用计算器相当长一段时间,从来没有问的问题。另外,我是新来的团结和C#)
我不能发布图像,但这里有一个imgur链接
(对不起,我有很多的麻烦描述的东西,我认为形象,有利于)
我有具有圆形spritemap的圆形子画面,其安装到弹簧的简单的代码,并且当我保持精灵,将其拖回到,并释放我的鼠标,物体在相反的方向上飞行,其中我拖回(几乎愤怒的小鸟一样发射)。但是,当我抱着精灵,我可以通过其他精灵夹在我的水平,甚至出界。球是浮戏应该能够拖动,并且在任何方向发射它
我已经试过了春天的突破力设定到一个相当低的水平,因此,如果我把它回过了头球没有推出,但球依然沿用了我的鼠标,当我将它拖到身边,当我后释放在春假,皮球稍稍落下。
此外,我试图通过限制它的长度限制弹簧的半径。但是,它没有工作。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LaunchScript : MonoBehaviour
{
public Rigidbody2D rb;
private bool isPressed = false;
public float releaseTime = 0.15f;
private void Update()
{
if (isPressed)
{
rb.position = Camera.main.ScreenToWorldPoint(Input.mousePosition);
}
}
// Start is called before the first frame update
void OnMouseDown()
{
isPressed = true;
rb.isKinematic = true;
}
// Update is called once per frame
private void OnMouseUp()
{
isPressed = false;
rb.isKinematic = false;
StartCoroutine(Release());
}
IEnumerator Release()
{
yield return new WaitForSeconds(releaseTime);
GetComponent<SpringJoint2D>().enabled = false;
this.enabled = false;
}
}
我的预期结果是:球会跟随鼠标,并能拖回来,但它不会通过绿色地下街区,篮,或边界块(用来保持球飞出界外块)夹。我的实际结果是:我可以在球拖动到任何POIN到屏幕上,其中包括直入绿色地面和出界。
运动学刚体撞机可检测碰撞只在非触发模式刚体撞机(撞机与非运动刚体)。
即使不动,运动刚体对撞机有不同的行为,以静态的对撞机。例如,如果对撞机被设置为一个触发,那么你还需要一个刚体,以获得在您的脚本触发事件添加到它。如果你不想触发在重力作用下或以其他方式物理影响,那么你可以设置它的刚体的IsKinematic财产。
尝试用isKinematic播放(例如反向启用/禁用或删除它),并禁用isTrigger。而且不要忘了在你的球和环境对撞机和刚体。