我做了一些研究,但找不到最有效的答案,盒对撞机 2D 还是圆形对撞机 2D?
有这个问题很快就得到了很好的答案,它说最快的是球体对撞机,其次是胶囊对撞机,然后是盒子对撞机,但我想知道 2D 对撞机。
2500 对撞机
胶囊 453-481ms
框 490-520ms
球体 190-233ms
有没有人有关于计算机处理哪个更快的信息?谢谢!
首先,我知道这个问题已经被问了很多,但我找不到解决方案,所以mi问题是,我正在制作一个教育游戏,我有一个静脉和血流(有许多盒子对撞机)和一个血细胞(也有一个盒子对撞机)然而我想让细胞在到达墙壁对撞机时摧毁,但它不会只停留在那里,这是项目!
http://tinypic.com/r/10706es/9
(由于我的声誉,无法上传图片,抱歉)
我要破坏我的细胞的对撞机是粉红色的对撞机,但是当它碰到它时它什么也没做,这是我的脚本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class collision : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void OnCollisionEnter(Collision col)
{
print("hihi");
if (col.gameObject.tag == "Collider")
{
Destroy(gameObject);
}
}
}
Run Code Online (Sandbox Code Playgroud)
此外,这是AddForce脚本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class AddForce : MonoBehaviour {
public float thrust;
public Rigidbody rb;
private Vector3 up;
private bool move;
void Start()
{
rb = GetComponent<Rigidbody>();
up = …Run Code Online (Sandbox Code Playgroud) public static bool BoxCast(Vector3 center,
Vector3 halfExtents,
Vector3 direction,
Quaternion orientation = Quaternion.identity,
float maxDistance = Mathf.Infinity,
...);
Run Code Online (Sandbox Code Playgroud)
这些是 Unity3D 中盒播的参数。我对参数的用途感到困惑,maxDistance因为我们已经用参数绘制了方框halfExtents。如果我不想移动盒子怎么办?即,我想画一个盒子并获取有关其内部内容的信息。我不想移动盒子。使用maxDistance = 0似乎没有任何作用,因为它没有记录任何点击。使用maxDistance > 0会移动盒子,我希望避免这种情况。
如何使用 BoxCast(),避免移动盒子?
我目前正在为 Android 开发 2D 游戏。我的场景中有一个玩家,如果用户倾斜他的设备,玩家对象就会在地面上移动。但他只是从左侧和右侧的屏幕中移出。我试图做一堵“墙”,但没有成功。在我的玩家游戏对象中有一个边缘碰撞器。现在我的问题是:我的玩家游戏对象如何与屏幕的一侧发生碰撞?
这是我的代码:
public GameObject player;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
Vector3 dir = Vector3.zero;
dir.y = Input.acceleration.x;
player.transform.Translate(new Vector2(dir.y, 0) * Time.deltaTime * 2000f);
}
Run Code Online (Sandbox Code Playgroud)
非常感谢!:)
七月
编辑:
图 1 是我的墙,图 2 是我的播放器。
解决方案代码:
Vector3 position = player.transform.position;
translation = Input.acceleration.x * movementSpeed * 50f;
if (player.transform.position.x + translation < LeftlimitScreen)
{
position.x = -LeftlimitScreen;
}
else if(transform.position.x …Run Code Online (Sandbox Code Playgroud) 我目前正在 Unity 中制作一款游戏,其中我试图仅在预制件的克隆离开相机视图后才销毁它们,只有在它们首先进入相机视图后才销毁它们。然而,由于某种原因,我的代码在克隆实例化后立即销毁它们。有谁知道我该如何解决这个问题?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class InteractControl : MonoBehaviour
{
Rigidbody2D rb;
GameObject target;
float moveSpeed;
Vector3 directionToTarget;
// Use this for initialization
void Start()
{
target = GameObject.Find("White Ball");
rb = GetComponent<Rigidbody2D>();
moveSpeed = 3f;
}
// Update is called once per frame
void Update()
{
MoveInteract();
OnBecameVisible();
}
/*void OnTriggerEnter2D(Collider2D col)
{
switch (col.gameObject.tag)
{
case "ColouredBall Highress":
BallSpawnerControl.spawnAllowed = false;
Destroy(gameObject);
target = null;
break;
case "Star":
Collision collision = new Collision(); …Run Code Online (Sandbox Code Playgroud) 我正在开发一款基本的太空射击游戏,但在触发碰撞器方面遇到了麻烦。
在游戏中,我有一个子弹预制件,上面附加了一个胶囊触发碰撞器,而敌人现在是一个基本的立方体,上面附加了一个盒子碰撞器。
当我运行游戏时,我开始射击子弹,敌人立方体直到几次射击后才会消失。
这是我的子弹预制件代码:
void OnTriggerEnter(Collider col) {
if (col.tag == "Enemy") {
Destroy (col.gameObject);
}
}
Run Code Online (Sandbox Code Playgroud)
以及我的每个游戏对象的属性的屏幕截图:
子弹预制件:
这是敌人的立方体:
这是正在发生的事情的视频链接......
我有一个地形和立方体。地形附加了地形对撞机,立方体上有盒子对撞机。但是立方体仍然在地形中坠落。我尝试了其他问题和其他论坛中解释的很多事情,但没有一个解决了问题。立方体和地形设置的屏幕截图附在下面。