我有一个脚本从层次结构中访问Vuforia的实例化游戏对象,并向它添加了一个组件:
IEnumerable<TrackableBehaviour> tbs = TrackerManager.Instance.GetStateManager().GetTrackableBehaviours();
foreach (TrackableBehaviour tb in tbs)
{
if (tb.TrackableName == "Fashion")
{
if (tb.name == "New Game Object")
{
// change gen
假设我想向下拉元素的OnSelect()事件添加功能。
通常,我只需向特定的下拉gameObject添加一个新脚本:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.EventSystems;
public class LanguageDropdown : MonoBehaviour, ISelectHandler// required interface when using the OnSelect method.
{
//Do this when
当该地区的敌人被杀死时,我想激活/启用一个TriggerCollider。敌人并不是按一定的顺序来的,所以不能给一个敌人添加脚本。我创建了一个空的游戏对象,并附加在下面(错误)脚本。我想做if( the public game objects are destroyed) activate trigger。
你能知道正确的答案吗?
public class ActivateDialogueTrigger : MonoBehaviour {
public GameObject DialogueTrigger;
public GameObject Enemy01;
pu
我最近偶然发现了UnityEngine.Events.UnityEvent类,它看起来很酷,所以我开始在一个项目中使用它。
然后,我决定使用事件的泛型变体向事件添加一些参数,如下所示:
[System.Serializable]
public class BarkEvent<GameObject> : UnityEvent<GameObject> {}
public class MyOtherClass : MonoBehavior {
public BarkEvent<GameObject> bark;
// ... Other stuf
我想知道如何通过统一检查器获得对任何其他脚本上特定函数的引用,以便将其添加到动态实例化按钮的单击侦听器中。我尝试使用一个公共UnityEvent来获得对函数的引用(就像静态按钮的onclick中那样),但我不知道如何在侦听器查找操作时将其添加到onclick UnityEvent中。我遗漏了什么吗?或者还有其他方法来解决这个问题呢?谢谢。这是个主意-
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.
我想将ScriptableObject与UnityEvent和GenericObject的使用结合起来。我的最终目标是创建通用事件和监听器,然后使用ScriptableObject创建特定事件,例如GameObject、int等,并使用相应的侦听器处理这些事件。下面是我到目前为止的代码:EventTemplate.cs
using System.Collections.Generic;
using UnityEngine;
public class EventTemplate<T> : ScriptableObject {
private List<Listener
我最近一直在做一个视频游戏,我试图制作一个脚本来摧毁游戏对象,每当鼠标右键点击它的时候,它就会被应用到游戏对象上。它根本不起作用,我在控制台中也没有收到任何错误消息。这是我所有的代码:
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
public class RightClick: MonoBehaviour, IPointerClickHandler
{
// Initiates whenever the pointer is clicked
public void OnPoi
我有一个场景,其中多个gameObjects正在做非常相似的事情。onTrigger,gameObject调用控制器中的函数。(每个gameObject的目标函数是不同的,但是一个gameObject总是调用这个函数) 对我来说,这似乎有很多重复的代码,我想抽象出它的功能;非常类似于按钮OnClick()处理这种情况的方式: ? 我自然认为这是一个很好的起点,在文档和论坛中挖掘,并拼凑出一些东西。目前,我的代码位于: using UnityEngine;
using UnityEngine.Events;
/**
* This script takes in a callbac
我已经找了那么多来解决我的问题,但是我什么也没找到。
那么,我的问题是什么呢?我有一个从UnityEvent扩展而来的类,它有两个虚方法,并且在另一个文件中有公共标识符,这个文件应该调用这些方法。但是当我把我的脚本放到检查器中时,什么也没有发生(除了根虚方法)。
类:
using UnityEngine;
using UnityEngine.Events;
using System.Collections;
namespace Namespace {
[System.Serializable]
public class SomeClass : UnityEvent {
下面的脚本使用一个函数,而首先要检查是否有一个对象在范围内,如果是的话,它就是。
按下鼠标键,弹丸向该物体的枢轴点射击。我想要弹丸
总是能够发射(如果物体在射程内则是无关紧要的)和
射向十字(到屏幕中点),而不是面向对象的枢轴点。
我是一个编码新手,我看不出要删除什么代码和添加什么。
using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
using UnityEngine.Events;
我有一个预制件动物与附加脚本Animal.cs。在那里,我试图触发一个事件,我想用另一个脚本来处理它。
我正在尝试两种不同的方法--其中的代码如下:
[System.Serializable] public class _UnityEventFloat:UnityEvent<float> {}
public class Animal : MonoBehaviour
{
[SerializeField]
UnityEvent onAnimalKill;
[SerializeField]
_UnityEventFloat whenAnimalIsKil
代码:
var score:GameObject;
function OnCollisionEnter(){
PlayerPrefs.SetFloat("Score",score.GetComponent(Events).i);
}
事件是我分配给gameObject评分的脚本,它包含浮动变量i。
我正在尝试从另一个函数访问这个变量。
但它给出了一个错误-
'Events' is a namespace. Namespaces cannot be used as expressions.
当我在事件中给出引号时,它最初不会给出任何错误,但是当调用OnCo
所以我有一个抽屉,里面有一个动画脚本,上面显示了一个面板,提示玩家使用触发器打开/关闭抽屉。我也有一个键,上面有一个类似的脚本,但是它会提示玩家也使用面板和触发器来拿起这个键。我想把钥匙放在抽屉里,所以当玩家按下'E‘来打开抽屉时,他们也可以按'E’来拿起钥匙。我试过让抽屉的对撞机更小,也让钥匙对撞机更大,但这只是意味着玩家可以拿起钥匙而不打开抽屉。实现这一目标的更有效方式是什么?如果需要的话,我也会附上我的代码。
DrawerScript:
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Events;
这是完整的错误(在这个新场景中,它是一个NullReferenceException):
NullReferenceException: Object reference not set to an instance of an object
FightScript.startFight_Click () (at Assets/Scripts/FightScript.cs:105)
UnityEngine.Events.InvokableCall.Invoke () (at C:/buildslave/unity/build/Runtime/Export/UnityEvent.cs:166)
我正在尝试使用Unity中的事件系统( C#方式),但我在实现它时遇到了问题。
大多数示例都显示了一个类,其中定义了处理程序;然后在同一个类中编写与处理程序的签名匹配的函数,并将事件编写为静态事件
public class EventExample : MonoBehaviour
{
public delegate void ExampleEventHandler();
public static event ExampleEventHandler OneDayPassed;
public static void NextTurn()
{
//
我正在为我创建的虚拟键盘编写一个键盘管理器。我使用UnityAction返回到调用对象并处理键盘输入。然而,不知何故,我的UnityAction丢失了它的subscribed事件,我得到了一个"Object reference not set to a object instance。
我检查了调用函数,以查看到达脚本时UnityAction是否不为空,是否不为空。但是,检查close中的其他所有地方都会返回null。您将在我的所有调试代码下面找到我检查UnityAction不为空的地方。代码中唯一不为空的地方是在ReadUserInput函数中。所有其他值都为空。
我已经在很多地方使
我读了这个,但找不到答案。
我正在使用Unity5 (2D),并试图创建一个按钮,单击该按钮将激活另一个对象的脚本中的方法。
在类中,我添加了//(第#行)这样的注释,这样您就可以更容易地从NRE中引用。
public class runePadController : MonoBehaviour {
public void shoot() {
var fccClass = new friendlyCastleController();
fccClass.shoot(); //(Line 23)
}
}
该按钮激活上述类中的The ()方法。
public class frie
我有以下课程:
[System.Serializable]
public abstract class BaseBehaviour : MonoBehaviour
{
[SerializeField]
public List> Actions;
protected int currentIndex = 0;
public bool OptOut = false;
public Intelligence.Intelligence Intelligence;
public T BaseAiContext;
public List Con
我的朋友为我创建了一个代码,用于创建一个使用vuforia的AR应用程序。现在我用vuforia的新版本安装了新的统一,它显示了一些错误,我发现有些更改被应用了,比如"MonoBehaviour,ITrackableEventHandler“改为"DefaultTrackableEventHandler”,但是我有一些错误无法理解:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Vuforia;
using System;
using Syste
目标是一个两个步骤的过程,其中Vuforia GroundPlane对象的Prefab从AssetBundle加载,并传递给AnchorBehavior变量声明,以便放置gameObject。
我也很抱歉,如果作为团结C#的新手,我没有我想要的那样准确
尝试了各种方法,将加载的预置文件等同于AnchorBehavior。但是,因为这是两种类型的对象,所以会出现错误,表明这些对象不能隐式相等
这些声明如下:
public PlaneFinderBehaviour plane;
public ContentPositioningBehaviour planeFinder;
public Ancho
我正试着做一个赛车游戏。在这个游戏中,我制作了两个按钮,并将脚本carController附在指针向下的EventTrigger上,如下所示:
汽车控制器脚本在c#中,如下所示:
public class carController : MonoBehaviour {
public float carSpeed;
Vector3 position;
public uiManager ui;
public audioManager am;
Rigidbody2D rb;
bool curren
我试着做一件简单的事情:
创建一个新的GameObject
将Button组件添加到GameObject中。
向Button的OnClick事件添加持久侦听器。
我试图注册的方法在其他脚本中。下面是我正在尝试的一段代码:
MyScript myScriptInstance = FindObjectOfType<MyScript>();
var go = new GameObject();
var btn = go.AddComponent<Button>();
var targetinfo = UnityEvent.GetValidMet
我正在努力使游戏中的计时器是触发后,与其中一个字符。我很难找到正确的密码。以下是我所拥有的:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Timer : MonoBehaviour
{
public GameObject textDisplay;
public int secondsLeft = 30;
public bool takingAway = false;
void OnTriggerE
我正在尝试制作一款马里奥聚会/棋盘游戏类型的游戏,但我似乎不能正确地移动。我试着通过一个导航网移动玩家,下面是每一轮都会改变的目标,并且在任何情况下都可以改变。这就是我到目前为止所拥有的控制器。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
public class PlayerController : MonoBehaviour
{
public static NavMeshAgent Playeragent;
public stat
我有一个gameObject,它需要调用许多其他函数。我希望能做这样的事
在那里我可以选择游戏对象和脚本来运行它。我不知道该怎么做。
我正在调用一个函数的按钮点击一个gui。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UIElements;
public class AvatarSystem : MonoBehaviour
{
public Button general;
public Button face;
📷
这是我的计时器脚本,运行良好。我需要它来激活游戏结束(UI图像)时,计时器达到0。
我试着在UI映像(GOS脚本)上附加一个脚本游戏。没有运气
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Timer : MonoBehaviour
{
public Text gametimer;
public float timeLeft;
public GameObject Gameover;
再问我同样的问题。我现在花了几个小时尝试,但我找不到解决这个问题的方法。我会尽量提供更多的信息。
using JetBrains.Annotations;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using UnityEngine.UI;
public class Shop : MonoBehaviour
{
[Header("List of items sold")]
[SerializeField] private ShopItem[] shopItem
我正在创建一个游戏,其中我有一个包含基本实体信息的实体类(pos,health,..)还有一些功能。敌人和玩家稍后从这个类继承。
Public class Entity {
public Vector2 position;
public float health;
,...
假设在实体类中有这样一个函数:
public GameObject movingIntoEnemy(Vector2 movingToPoint)
{
foreach (GameObject go in GameObject.Find("GameMap").GetComponent<GameM
如何从附加到Ray交互器的Unity (XR交互工具包)脚本中调用函数?确切地说,我有一个作为XR射线交互演员的GameObject,并附加了XR直接交互演员脚本。我想从该脚本调用函数GetValidTargets,看看它针对的是什么GameObject。如何在另一个脚本中调用此函数?我已经指定了GameObject,并尝试了不同的方法来实现它,例如GetComponent<>()。
这是函数在脚本中所说的,所以这是在我调用它之后。
/// Retrieve the list of interactables that this interactor could p