统一C#“设定子画面的位置的鼠标指针”使得通过其他精灵精灵夹

问题描述 投票:0回答:1

(抱歉,如果格式化或其他任何东西是不正确,一直在使用计算器相当长一段时间,从来没有问的问题。另外,我是新来的团结和C#)

我不能发布图像,但这里有一个imgur链接

https://imgur.com/a/jcki1qd

(对不起,我有很多的麻烦描述的东西,我认为形象,有利于)

我有具有圆形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到屏幕上,其中包括直入绿色地面和出界。

c# visual-studio unity3d
1个回答
0
投票

运动学刚体撞机可检测碰撞只在非触发模式刚体撞机(撞机与非运动刚体)。

从统一Manual: Colliders

即使不动,运动刚体对撞机有不同的行为,以静态的对撞机。例如,如果对撞机被设置为一个触发,那么你还需要一个刚体,以获得在您的脚本触发事件添加到它。如果你不想触发在重力作用下或以其他方式物理影响,那么你可以设置它的刚体的IsKinematic财产。

尝试用isKinematic播放(例如反向启用/禁用或删除它),并禁用isTrigger。而且不要忘了在你的球和环境对撞机和刚体。

© www.soinside.com 2019 - 2024. All rights reserved.