我试图做一个射线广播,以检测什么时候有一个物体与5个单位的播放器,它应该返回对撞机的名称。此代码返回一个NullReferenceException。我已经检查过了,如果我查看一个对象,那么Physics.Raycast将返回true。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Grapple : MonoBehaviour
{
public Camera cam;
public RaycastHit hit;
public f
public void RunSimulation()
{
Physics.autoSimulation = false;
simulatedBodies = FindObjectsOfType<Rigidbody>().Select(rb => new SimulatedBody(rb)).ToArray();
striker.GetComponent<Rigidbody> ().AddForce (new Vector3 (200.0f, 0.0f, 200.0f));
for (int i =
我在Unity上制作了一个2D游戏,我创建了一个重叠来查看球是否在击球区域。然而,每当我按下击球按钮时,即使球远离球员,球也会被击中。我正在发送播放器的代码,其中包含到目前为止所需的内容,以查看可能出了什么问题。据推测,在hitColliders的foreach hitCollider中,它应该被修复,但它不能工作,我就是无法理解它。
public int speed;
public bool estoyFloor, subiendo, bajando;
public bool canRight, canLeft;
public bool canMove;
public float posY
跟进这个,故事板与陶瓷瓷砖引擎,并与碰撞检测仍然是一个谜。以下是代码:
-- hide status bar
display.setStatusBar(display.HiddenStatusBar)
local storyboard = require("storyboard")
--Set up the physics world
local physics = require("physics")
physics.start()
physics.setGravity(0, 0)
physics.setDrawMode('hybrid')
l
我正在构建一个2d的统一游戏,我试图对一个敌人的全国人民代表大会造成伤害。但是,我很难将敌人的脚本引用到玩家的脚本中。
获取以下错误:
对象引用未设置为对象PlayerAttack.Update ()的实例
代码:
//Creates invisible circle where the player can damage enemy
// whatIsEnemies is set to a layermask
Collider2D[] enemiesToDamage = Physics2D.OverlapCircleAll(attackPos.position, attackRange,
在我的场景中,我试图拖动一个重力= 0,0的动态物体,我有一个具有身体类型的动态的正方形,和一个静态的身体类型的图像,但是当把这个方块拖到图像上时,这有一点力,但可以超过图像,然后像图像一样传递到另一边:
这是我拖动正方形的代码:
local function dragBody( event )
local body = event.target
local phase = event.phase
local stage = display.getCurrentStage()
if &
当物体与物体发生碰撞时,我试图改变场景。只是为了得到信息,当我在按钮上使用一个侦听器时,它工作得很好!现场最清洁,没有问题的“物理”了。
场景: CH1-SAH-A01
function onCollision(event)
if (event.phase=="began") then
if (event.object1.myName=="hero" and event.object2.myName=="start_point") then
我有以下播放器控制器:
using UnityEngine;
using UnityEngine.Networking;
using System.Collections;
[RequireComponent(typeof(NetworkIdentity))]
public class PlayerController : NetworkBehaviour {
public Vector3 size = new Vector3(1, 1, 1);
public float speed = 10;
public float rotateSpeed = 9;
p
我正在尝试让我的第一个游戏成为2D平台,但我遇到了一个我无法解决的问题。所以我把我的角色放在地板上,当我尝试跳跃的时候,有时它会跳起来,播放跳跃动画,有时只是跳跃。我在同一个if中有两个指令(关于速度和动画),所以我看不到发生了什么。如果有人可以帮助我,我会留下下面的代码。我也对不和谐或skype通话开放。提前感谢!
播放器脚本:
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.XR;
public class Playe
我在线旁实例化了线渲染器,手动添加了一个胶囊对撞机。我已经在这个屏幕上添加了不同的精灵。我在主摄像机上使用Physics2D Raycaster,在脚本中使用Physics2D Raycaster,在脚本中检测到这些精灵的触摸,并借助和它们进入包含下面提供的精灵renderer.Sample代码的所需的gameObject。
public class TouchDetect:MonoBehaviour,IPointerEnterHandler,IPointerExitHandler
{
public void OnPointerEnter(PointerEven
我目前正在编写一个android游戏,正在处理快速碰撞检测。我已经想出了一个解决方案,但我想知道做这件事的最好和最好的方法。
我的解决方案是:如果我们有一个每帧移动30个单位的游戏对象,我们可能会直接穿过另一个游戏对象。因此,当我更新时,我迭代游戏对象1个单位,并运行碰撞检测,直到达到我想要的速度,然后我渲染。
这是一个游戏对象,它检查玩家的激光或玩家本身是否与其相撞。
public void update(PlayerDroid[] holderPlayerDroid) {
// Update the location
//y = y + ve
所以我有这个模块,它在游戏中的所有活动都在里面。在t.physics中,我添加了一个冲突事件侦听器(区分目标是组还是单个对象)。但是,当有关对象检测到冲突时,其他对象的属性col (event.other)似乎是nil,尽管我最初将其设置为表示t.create中的颜色的字符串。我就是找不到原因,是吗?
谢谢你的帮助。你好,尼尔斯
local fence = require("lib.fence")
local physics = require("physics")
local t = {}
local stages = {yellow = 1, lil
当我在我的println()中放置一个didBeginContact时,没有任何打印。因此,我假设我的didBeginContact不工作。为什么?我也有一个枚举(对撞机类型),其中的rawValues杯和明星和上市。
这是我的GameScene文件。
import Foundation
import SpriteKit
class PlayScene: SKScene, SKPhysicsContactDelegate {
let cup = SKSpriteNode(imageNamed: "cup")
override func didMoveTo
我正在创建一个小型-like游戏。
在create函数中,我创建了敌人
enemies = game.add.group();
enemies.enableBody = true;
enemies.physicsBodyType = Phaser.Physics.ARCADE;
enemies.x = 100;
enemies.y = 50;
for (var y = 1; y < 200; y += 50) {
for (var x = 233; x <= 800; x += 50) {
var enemy = enemies.create(x, y,
我从Phaser开始,我需要做下面的动画:一个精灵的汽车出现在屏幕的任何一边,所以,在一个特定的点上,另一辆车向同一个方向移动,另一辆和另一辆,以相同的间隔,当这辆车离开屏幕时,它们就会被摧毁。
试试看,我穿上了雪碧,但当汽车与他们相撞时,另一辆车开始了运动。看代码:
var x = 800
var y = 600
var game = new Phaser.Game(x, y, Phaser.AUTO, '', { preload: preload, create: create, update: update });
var cars;
var next;
funct
我创建一个emtpy游戏对象并附加.cs文件。我尝试加载一个预置文件(.obj文件)鼠标点击位置。我的代码是:
Ray ray;
RaycastHit hit;
public GameObject prefab;
void Start()
{
}
// Update is called once per frame
void Update()
{
if (Input.GetMouseButtonDown(0))
{
ray=Camera.main.ScreenP