C# 如何从游戏对象创建不同的可点击部分
我想创建一个可以通过两种不同方式单击的游戏对象。 这张图片只是一个例子,但这正是我想要的。有两种不同的可点击生命点,它们具有不同的功能。第一个黑色的应该在x坐标和y坐标上移动游戏对象。黄色部分会改变游戏对象的角度。我和raycast试过一些东西,但没有成功。也许有人能举个好例子吗?那太好了 问候C# 如何从游戏对象创建不同的可点击部分,c#,unity3d,raycasting,C#,Unity3d,Raycasting,我想创建一个可以通过两种不同方式单击的游戏对象。 这张图片只是一个例子,但这正是我想要的。有两种不同的可点击生命点,它们具有不同的功能。第一个黑色的应该在x坐标和y坐标上移动游戏对象。黄色部分会改变游戏对象的角度。我和raycast试过一些东西,但没有成功。也许有人能举个好例子吗?那太好了 问候 Sander您可以在同一游戏对象中使用多个碰撞器,并更改其中心和大小属性以正确定位它们。我认为这是最简单的方法 然后使用钩子OnCollisionIntercollision,如以下示例所示: pub
Sander您可以在同一游戏对象中使用多个碰撞器,并更改其中心和大小属性以正确定位它们。我认为这是最简单的方法 然后使用钩子OnCollisionIntercollision,如以下示例所示:
public class CollisionHandler : MonoBehaviour {
private IDictionary<Collider, string> colliders;
void Start () {
int i = 0;
colliders = new Dictionary<Collider, string>();
foreach (var collider in GetComponents<Collider>())
colliders.Add(collider, "collider_" + i++);
}
void OnCollisionEnter(Collision collision)
{
Debug.Log(colliders[collision.contacts[0].thisCollider]);
}
}
类似的方法是将2个空的游戏对象作为游戏对象的子对象;他们每个人只有一个碰撞器,并有一个脚本来处理碰撞。想了想,但没有意义。您无法请求哪个碰撞器被点击。如果对象上有两个碰撞器,OnCollisionCenter将对两个碰撞器都起作用。已经查过了…那不是真的。我用代码更新了我的答案,告诉你如何做到这一点。我测试过了,它能工作。