我需要帮助。我创建了一个脚本,在鼠标位置生成一个简单的gameObject。这个gameObject是预制件。因为我需要它移动,然后在它离开屏幕后销毁,所以这是我创建的脚本:
using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;
public class foodManager : MonoBehaviour
{
public GameObject food;
private void Start()
我刚刚开始使用统一,我试图把一个简单的C#脚本放在预置的位置上(一些2D精灵)。问题是,每当我将脚本应用到预制板上并试图播放场景时,团结就会冻结并产生一个无限循环,它消耗了所有的内存(有时甚至给我一个黑屏幕),而我必须强制--在任务管理器中扼杀这个过程。
但是,代码非常简单,根本不包含循环:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DungeonTest : MonoBehaviour {
public Transform DungeonB
在AssetBundle使用手册中,
我可以看出,当使用LoadAsset加载一个GameObject时,为什么我们需要做额外的Instantiate呢?这将创建另一份预置文件,我搞不懂为什么我们不直接使用加载的prefab GameObject?
public class LoadFromFileExample extends MonoBehaviour {
function Start() {
var myLoadedAssetBundle = AssetBundle.LoadFromFile(Path.Combine(Application.streamingAs
我有一个类来管理一个游戏的用户界面。
public class GameManager : MonoBehaviour {
ArrayList sprites;
// Use this for initialization
void Start () {
sprites = new ArrayList();
sprites.Add(Resources.Load("bettle", typeof(Sprite)));
sprites.Add(Resources.Load("donut", ty
我对团结很陌生。尝试加载/附加一个.obj文件(下载并保存在我的文件系统中)到统一中的游戏对象。我试过使用以下代码,但有一个错误。
Resources.Load(My_File_Path).transform.parent = targetGameObject;
我所犯的错误:
错误CS1061:键入UnityEngine.Object' does not contain a definition fortransform‘而没有扩展方法transform' of typeUnityEngine.Object’。您缺少程序集引用吗?
我有两个脚本。1生成对象,另一个销毁它们。
我首先按下OnSave按钮,它将运行脚本#1并创建我的对象。(不止一个,尽管这里在脚本中只显示了一个,但为了解决问题,我将其缩短)
然后我按下OnReset按钮,这会销毁创建的对象/预制件。但是当我再次按OnSave键时,它不会重新创建对象。
这两个脚本连接到两个不同的gameObjects
这就是我所拥有的:
脚本#1:
public GameObject go;
public static volatile List<GameObject> prefab = new List<GameObject>();
public
我在做2d赛车游戏..。我在画布背景(公路) .my汽车和敌车中使用UI图像,我试图用这个脚本实例化敌人的汽车,方法是将这个脚本附加到空的gameObject上,然后将敌人的预置附加到enemyCar图像中,在script...but中奇怪的是: enemyCar在层次结构中被实例化,但是我在游戏中看不到它,怎么了?是与孩子和父母有关还是什么?如何使UI图像成为脚本中画布的子图像?
using UnityEngine;
using UnityEngine.UI;
public class Generate : MonoBehaviour
{
public Image enemyCar;
//
在我的项目中,我有一个MonoBehaviour类PlayerController,它包含另一个MonoBehaviour类WaypointController的对象数组。通过将对象拖入Inspector来填充此数组。问题是,数组中的对象在测试游戏时开始运行良好,但变为空,并且我无法找出原因或确切的位置。我不会(故意)破坏对象或加载其他场景。我该如何解决这个问题呢?
WaypointController对象封装了一个CanvasGroup,我在游戏过程中切换CanvasGroup的alpha和interactable字段。
这是包含数组的类:
public class PlayerContro
我有一段代码,它应该生成一个随机的瓦片地图,它只为服务器做。当玩家加入it.How时,我不知道如何将其同步到玩家。我会将预制件同步给加入的玩家吗?他们在一个玩家(服务器)上加载,但当另一个玩家加入时,他们不会出现。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
public class GenerateLevel : NetworkBehaviour {
public int MapSize = 20;
publi
我有预置播放器和脚本播放器
我还有GameController预制件和脚本TouchMove。这是TouchMove代码:
public class TouchMove{
[SerializeField] Player player;
.....
}
所以TouchMove有player对象作为组件,我通过统一检查器来附加它。TouchMove脚本负责玩家的移动。这就是为什么它靠近player对象的原因。
另外,我有很多场景,每个场景都包含GameController和Player对象。当我修改GameController或Player组件时,我希望更新所有场景中的所有游戏对象
所以我试图均匀地分配2D项目到屏幕上。现在,我让它以选择所有项的方式工作,它计算画布的大小,而不是一起计算所有对象的宽度,以查看它有多少空白。而不是在对象之间平均分配适当数量的空白。效果很好。然而,一旦我得到超过4项,或者我没有足够的空白(例如,对象太大),我想创建第二行并将第一行向上移动。
下面是我的密码。
public static void DistEvenly(PageObjectBase pageObject)
{
//List for objects
List<PageObjectBase> objectList = new Li