我正在创建一个场景,我想在其中显示优惠列表.为了展示报价,我创建了一个带有占位符的预制件,用于我将在运行时获得的报价详细信息.我在场景中创建了一个占位符,将预制件添加到场景中,但它没有在UI上显示.OfferHolderClass:
using UnityEngine;
using System.Collections;
public class OfferHolder : MonoBehaviour {
public GameObject localOffer;
// Use this for initialization
void Start () {
GameObject offer = Instantiate(localOffer) as GameObject;
offer.GetComponent<Offer>().Text = "Testing";
offer.transform.parent = this.transform;
}
// Update is called once per frame
void Update () {
}
}
Run Code Online (Sandbox Code Playgroud)
我是Unity的新手,我不确定我在这里缺少什么.
我想说些像......
Gameobject.find(child gameobject of specific parent Gameobject)
Run Code Online (Sandbox Code Playgroud)
谁能帮我.谢谢!
我一直在关注几个教程系列,并且已经看到这两个系列以非常相似的方式使用,并且希望有人可以解释它们之间的区别,如果可能的话,还可以举例说明何时使用一个而不是另一个(假设它们实际上是相似的) !).
private LevelManager levelManager;
void Start () {
levelManager = GameObject.FindObjectOfType<LevelManager>();
}
Run Code Online (Sandbox Code Playgroud)
和
private LevelManager levelManager;
void Start () {
levelManager = GetComponent<LevelManager>();
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试将子对象添加到子集合中,但我想确保最新的将是第一个.
这是我想要做的:
GameObject
- (My new object here)
- GameObject
- GameObject
- GameObject
Run Code Online (Sandbox Code Playgroud)
这是我用来实例化我的预制件的代码:
GameObject messageObj = Instantiate(storyPrefab) as GameObject;
messageObj.name = "Story";
messageObj.transform.parent = wallGrid.transform;
messageObj.transform.localScale = new Vector3(1,1,1);
Run Code Online (Sandbox Code Playgroud)
希望这是有道理的.
任何帮助是apreciated和提前感谢:-)
Unity 中是否有 C# 方式来复制现有的 GameObject 及其所有子项?就我而言,我有一个空的 GameObject,其中有许多 Text 对象作为子对象,我想为它们创建一个副本,包括相对位置、文本值、字体、颜色等......
预制件不会轻易工作,因为我想复制对象,包括其当前状态。
如何为游戏对象添加着色器?a在此处定义着色器:
(我正在尝试做同样的事情并遇到一些问题):http://answers.unity3d.com/questions/175692/getpixelsetpixels-or-stencil-eraser-brush.html
和2个texture2D在代码中定义并通过Resource.Load加载,分配给游戏对象.如何将着色器应用于我的游戏对象并与两个纹理进行通信?
如您所见,我在着色器中有此代码
_MainTex("Main Texture (rgb)", 2D) = "white" {}
_Color ("Main Color", Color) = (1,1,1,1)
_Stencil("Stencil Texture (a)", 2D) = "white" {}
Run Code Online (Sandbox Code Playgroud)
我怎么能告诉着色器谁是主要纹理和模板纹理?
使用以下代码,我可以从"SMG"获取脚本并将其应用于weaponObject:
weaponObject = GameObject.FindGameObjectWithTag(SMG).GetComponent<SMGScript>();
Run Code Online (Sandbox Code Playgroud)
有可能采取类似下面的行动,如果是这样,怎么样?
string variable = "SMG";
weaponObject = GameObject.FindGameObjectWithTag(variable).GetComponent<variable>();
Run Code Online (Sandbox Code Playgroud)
我希望有一些脚本可以应用于依赖于变量的weaponObject.
假设我有一个游戏对象“玩家”和两个场景 A 和 B。如果我在两个场景上添加这个游戏对象“玩家”,然后进行一些更改(例如在场景 A 中添加脚本),我可以以某种方式实现游戏对象“ A 和 B 中的 Player' 保持不变?或者我是否必须手动更新两个场景中的游戏对象?
我找不到方便的方法来实现这一目标。
Unity和C#的新手
这实际上只是一个我很好奇的小问题......我在调试这个代码的过程中遇到了这个问题(尝试使其失效).我一直试图让这段代码工作几个小时.
无论如何,当执行此代码时,只有一个错误,但它出现3次.它说"不能破坏'Pillar1'的变换组件.如果你想破坏游戏对象,请在游戏对象上调用'Destroy'.不允许销毁变换组件."
我第一次得到那个.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlatformGenerator : MonoBehaviour {
public GameObject Single;
private GameObject NewPillar;
private int PillarCount;
private bool run;
private int px;
private int py;
private int pz;
void Start () {
px = 0;
py = 0;
pz = 0;
bool run = true;
PlatformCreate ();
}
void Update () {
if (run) {
PlatformCreate ();
if (PillarCount == 3) {
run = false;
}
}
}
void PlatformCreate () …Run Code Online (Sandbox Code Playgroud) Unity 使用transform.GetChild(childNum)与gameObject.GetChild(childNum).
我知道 Unity 中的每个 GameObject 都有一个 Transform 组件,并且该函数返回子项的 Transform,但是使用 GameObject 类获取子项不是更合逻辑吗,因为它引用场景或项目中的实际 GameObject而不仅仅是一个组件?为什么使用 Transform 来查找分层信息?