Articles of gameobject

无法实例化对象统一

我正在创造一个统一的比赛纸牌游戏,我想把卡片放在一个又一个下面的方向上,等等…但是用我的公式它是一个接一个地显示卡片。请告诉我我的代码有什么问题。 以下是我的代码 – void SpawnCards(){ int cardsinrow = 4; int cardsincolumn = cardslist.Count/cardsinrow; if(cardslist.Count % cardsinrow > 0) cardsincolumn += 1; float spacebetweencards = .2f; for(int i=0; i<cardslist.Count; i++){ GameObject mc = Instantiate(memorycard, new Vector3((i%cardsinrow+(i%cardsinrow*spacebetweencards))-(cardsinrow/2f)+spacebetweencards, 0, (i/cardsinrow+(i/cardsinrow*spacebetweencards))-(cardsincolumn/2f)+spacebetweencards), memorycard.transform.rotation) as GameObject; mc.GetComponentInChildren<MemoryCard>().SetMemorycard(cardslist[i].texture, cardslist[i].number); } }

如何通过使用libgdx android游戏开发进行滑动来向任何方向移动对象

首先,我是Android游戏开发新手,所以我不知道android和libgdx中的所有类和字典。 我实际上是第一次跟随一个游戏开发教程(kilobolt),但是在完成本教程之后我已经有了一些我想要做的游戏。 所以这是我的问题: 假设你有一个装有小球的盒子。 当你握住球时,你将球“握在手中”。 然后你用手拿着球在屏幕上滑动,然后“放开”(释放触摸),球以你滑动的速度向你滑动的方向滚动,按照设定的摩擦降低速度。 有没有可能用libgdx来实现这样的function? 如果是的话,你能解释一下怎么做吗?

我们能否统一为不同的对象创建相同的名字类?

我有四个类似的对象在我的游戏中。 因为它们都是相似的,所以我创建了一个为所有这些脚本定义混搭的脚本。 为这些对象定义mash的脚本使用了一个名为radius的variables,这个variables是从其他文件(通过classname.radius )导入的。 半径在每一帧都更新,它是所有对象唯一不同的属性。 为了让不同的对象具有不同的半径,我认为会起作用的是,制作四个不同的同名classname名。 在它们中创建可变radius并给它们不同的值。 将第一个文件拖到第一个对象,第二个文件拖到第二个对象等等。当执行时,每次生成mash的脚本都会从被拖动到该对象的文件中考虑classname.radius 。 但是这是行不通的。 什么是错的,我该如何执行它? 似乎我搞乱OOPS的概念!

Unity 2D – 实例化一个游戏对象并且每秒缩放一次

我想制作一个类似炸弹的游戏对象,当实例化时,需要2秒的时间来充电,然后是其他一些事件触发器。 问题是我不能让它顺利地缩放2秒,然后触发一些其他的事件。 这是我有: public GameObject bombGO; // This method is inside a Input.GetButtonDown("Fire2") event in Update() void ChargeBomb() { Vector3 offset = transform.rotation * playerOffset; GameObject bomb = (GameObject) Instantiate(bombGO, transform.position + offset, transform.rotation); bomb.transform.localScale += new Vector3(0.2f, 0.2f, 0.2f); // Now I want this transform to be fired continuosly for 2 seconds, while the […]

使用组和obj文件跟踪对象层次结构的最佳策略

我正在从头开始在OpenGL的3D游戏。 在这个游戏中,我有一艘船里面的东西。 我如何在CAD程序中将这些东西附加到船上,并在我自己的游戏中维护这个层次结构? 比如说我的船上有一个灭火器,挂在墙上。 有两种方法都有问题。 解决scheme1:保存灭火器并作为单独的obj文件运输。 问题:如何在我的游戏中将灭火器放置在我船的适当位置? 有数百个物体手动放置它们是完全不可行的。 我想安排我的CAD的东西,并加载到游戏中并完成。 解决scheme2:将灭火器作为自己的组保存在ship obj文件中。 问题:现在我不能在其他船上重复使用灭火器。 游戏资产的obj文件会随着重新使用的子对象的新实例的大小而失去控制。 有什么方法可以指定外部对象的位置? 我的ship obj文件中的3d点表示另一个obj模型的起源?

ScriptableObject在场景中引用一个游戏对象

我用的脚本对象需要在场景中引用一个游戏对象,是为了安排事件,如移动。 意思是一个脚本对象应该有一个游戏对象或航点,让NPC去。 是否有一个解决schemescriptableobject有场景中的游戏对象的引用? 还是有更好的方法来做到这一点?

Unity中的Object.Destroy()和GameObject.Destroy()之间的区别

在Unity中使用Object.Destroy()和Object.Destroy()什么区别? 我发现有关的信息如下: 这里和这里 ,但它没有回答我的问题。 那么,有人可以解释这个事情吗?

试图让对象在鼠标方向移动XNA C#

对,所以在我调用对象的Player类中,我得到了一个获取鼠标坐标的if语句 bool PickedCoords = true; MouseState mouseState = Mouse.GetState(); if (newState.LeftButton == ButtonState.Pressed && oldState.LeftButton == ButtonState.Released) { PickedCoords = true; int MouseX = mouseState.X; int MouseY = mouseState.Y; } else { PickedCoords = false; } oldState = newState; // this reassigns the old state so that it is ready for next time 现在,我将如何使用MouseX和MouseY作为我的对象在指定的X和Y坐标中移动的方向? 我所要做的就是将对象向鼠标单击的方向移动,并使其继续朝那个方向移动,直到它停止。

滚动对象然后创建此对象的新实例

在我的游戏中,当按下鼠标右键时,你会把一个物体放在地上。 所有对象都有相同的超类(GameObject)。 我有一个被选中的字段,并且一次等于一个特定的gameobject。 当点击鼠标右键时,它会检查选中的实例,以及如何确定将哪个对象放置在地面上。 代码exapmle:t是对象将要去的“槽”。 if (selected instanceof MapleTree) { t = new MapleTree(game,highLight); } else if (selected instanceof OakTree) { t = new OakTree(game,highLight); } 现在它必须是对象的“新”实例。 最终,我的游戏将有数百个GameObjects,我不想有一个巨大的if else语句。 我怎么做,所以它滚动的可能种类的对象,如果它的正确types,然后创建一个新的实例…? 按E时,它将切换所选的types,并且也是一个if else语句。 我怎样才能做到这一点呢? 这里是一个代码示例: if (selected instanceof MapleTree) { selected = new OakTree(game); } else if (selected instanceof OakTree) { selected = new MapleTree(game); }

在Start()中实例化Unity游戏的Unity缩​​放不会“保持”

我有一个非常简单的情况: 一个从Blender自动导入的框式预制件(我在Assets文件夹中有.blend文件)。 具有两个公共GameObject字段的脚本。 在一个我放置上述预制,另一个我放置一个地形对象(我在Unity的graphics视图中创建): 公众对撞机地形; public GameObject aStarCellHighlightPrefab; 该脚本附加到相机。 这个想法是让Blender预制实例化,将地形设置为父级,然后将预制实例向上缩放。 我首先在Start()方法中这样做了: void Start () { cursorPositionOnTerrain = new RaycastHit(); aStarCellHighlight = (GameObject)Instantiate(aStarCellHighlightPrefab, new Vector3(300,300,300), terrain.transform.rotation); aStarCellHighlight.name = "cellHighlight"; aStarCellHighlight.transform.parent = terrain.transform; aStarCellHighlight.transform.localScale = new Vector3(100,100,100); } 并首先认为它没有工作。 然而,后来我注意到,事实上它起的作用,就是从一开始就适用这个尺度,但是在预制实例回到最初的尺度之后。 将比例代码放在Update()方法中可以修正它,现在它始终保持缩放: void Update () { aStarCellHighlight.transform.localScale = new Vector3(100,100,100); //… } 但是我注意到,当我运行这个代码时,首先显示的对象没有应用缩放比例,缩放需要大约5-10秒。 在这段时间内,一切正常(如input和日志logging等)。 这个场景很简单,并不像它有很多东西要装载什么东西(从镜头到地面有一个光线投射,但似乎没有这样的延迟)。 我的(2部分)问题是: 当我在Start()方法的开头执行时,为什么不进行缩放转换呢? 为什么我必须继续在Update()方法中进行缩放? […]