Tag: unity3d

执行一段代码后,Unity 5无响应

我是团结的绝对初学者。 我一直在使用一个简单的登录表单的UI。 其中我有两个Toggle用于选择性别,即男性或女性。 我一直在做的是调用一个方法来检查是否已经选择了男性它将在按下另一个切换时从男性中删除检查。 当我点击女性Toogle时,我的Unity冻结。 这是我的代码。 Toggle female; Toggle male; void Start(){ female = GameObject.Find (“toggle_female”).GetComponent (); male = GameObject.Find (“toggle_male”).GetComponent (); } public void isMale(){ if (female.isOn) female.isOn = false; male.isOn = true; } public void isFemale(){ if (male.isOn) male.isOn = false; female.isOn = true; }

使用JavaScript和/或C#(Unity3D)从PHP脚本加载一些变量

我在Unity Game Engine中有困难的项目,我需要创建从服务器上的PHP文件加载变量的脚本。 我的PHP脚本是: 结果如下: 1 Server = SomeIP1 2 Server = SomeIP2 3 Server = SomeIP3 如何在C#和/或JS(Unity3D)中读取这些(作为变量)?

为什么编译器选择错误的方法重载?

我有这个简单的方法: public void CacheDelegate(Object obj, MemberInfo memberInfo) { switch (memberInfo.MemberType) { case MemberTypes.Field: var fieldInfo = (FieldInfo) memberInfo; CacheDelegate(obj, fieldInfo); break; case MemberTypes.Property: var propertyInfo = (PropertyInfo) memberInfo; CacheDelegate(obj, propertyInfo); break; case MemberTypes.Method: var methodInfo = (MethodInfo) memberInfo; CacheDelegate(obj, methodInfo); break; default: throw new Exception(“Cannot create a delegate for MemberInfo provided.”); } } 上面的方法解析了memberInfo的类型,并从以下方法调用适用的方法: public […]

递归调用buff / unbuff? C#Unity3D

我的目标是进行单次碰撞检测,这将降低与特定持续时间碰撞的物体的移动速度。 到目前为止我尝试了什么: //Class that detects the collision if (other.gameObject.tag == “enemy”) { EnemyMovement enemyMove = other.GetComponent (); if (enemyMove.slowMove != 1) { return; } enemyMove.Slow (2, 0.5f, true); //…. //Class that handles the Enemy-Movement //The slowfactor gets multiplied with the Vector3 that handles the movementspeed of the Character void FixedUpdate () { Movement(); } void […]

随着时间的推移增加和减少光强度

我想在Unity中创建一些萤火虫。 我想增加光强度然后等待几秒钟,然后在Unity中减少它。 当它们产生时,我希望它们增加光强度,等待几秒然后淡出。 如何以干净的方式创建这个“过程”? private Light pointLight; // The light component of the firefly private float minLuminosity = 0; // min intensity private float maxLuminosity = 1; // max intensity private float luminositySteps = 0.005f; // factor when increasing / decreasing private float shineDuration = 3; // wait 3 seconds when faded in private void […]

协同程序为何停止工作/执行

我有一个3秒倒数计时器,在游戏未启用时激活。 几天前我让它正常工作但现在它不再起作用了。 它被阻塞在数字3上。这是代码: IEnumerator Timer() { Time.timeScale = 0; objectWithGSScript.scoreText.fontSize = 300; objectWithGSScript.scoreText.text = “” + 3; yield return WaitOneSecond(); objectWithGSScript.scoreText.text = “” + 2; yield return WaitOneSecond(); objectWithGSScript.scoreText.text = “” + 1; yield return WaitOneSecond(); objectWithGSScript.scoreText.text = “Go!”; yield return WaitOneSecond(); Time.timeScale = 1f; objectWithGSScript.scoreText.text = objectWithGSScript.score.ToString(); } IEnumerator WaitOneSecond() { float start = […]

Unity输入在印刷机中多次检测到

我有一个使用这些方法的源MonoBehavior脚本: private void Update () { if (Input.GetMouseButton(0)) { HandleInput(); } } private void HandleInput () { Ray inputRay = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Physics.Raycast(inputRay, out hit)) { var position = transform.InverseTransformPoint(hit.point); Coordinates coords = Coordinates.FromPosition(position); HexCell cell = null; if (!cells.TryGetValue(coords, out cell)) { var err = string.Format(“{0} is an invalid position and coordinates […]

如何通过旋转游戏对象使行编辑器中的句柄旋转

我一直试图通过旋转游戏对象使GoKit中的句柄(来自节点)旋转。 基本上我将GoKit添加到我的项目中并使用附加的GoDummyPath脚本创建了一个游戏对象。 我只使用两个节点(或句柄)来创建一条直线。 上图显示了我想要实现的目标。 从原始位置A,我想要旋转游戏对象以影响手柄(线)的位置来表示B.小圆圈表示游戏对象的位置。 我无法通过在检查器中旋转游戏对象来旋转线,因此我将以下代码添加到GoDummyPathEditor : 两个变量: private Quaternion handleRotation; private Transform handleTransform; 到OnEnable() handleTransform = _target.transform; handleRotation = Tools.pivotRotation == PivotRotation.Local ? handleTransform.rotation : Quaternion.identity; for (var i = 0; i < _target.nodes.Count; i++) _target.nodes [i] = handleTransform.TransformPoint (_target.nodes [i]); if( GUI.changed ) OnInspectorGUI() : for (var i = 0; i < _target.nodes.Count; […]

克隆/复制现有的GameObject及其子对象

在Unity中是否有一种C#方式来复制现有的GameObject及其所有子节点? 在我的例子中,我有一个空的GameObject,其中包含许多Text对象作为子对象,我想创建它们的副本,包括相对位置,文本值,字体,颜色等…. 预制件将无法轻松工作,因为我想复制包括其当前状态的对象。

如何将bool保存到PlayerPrefs Unity

我的游戏设置支付系统是我的代码: void Start() { T55.interactable = false; Tiger2.interactable = false; Cobra.interactable = false; } public void ProcessPurchase (ShopItem item) { if(item .SKU ==”tank”) { StoreHandler .Instance .Consume (item ); } } public void OnConsumeFinished (ShopItem item) { if(item .SKU ==”tank”) { T55.interactable = true; Tiger2.interactable = true; Cobra.interactable = true; } } 现在,每当玩家在游戏中购买东西时,我的3个按钮的难度就变为真; 但问题是每次他关闭游戏时,难以解决的问题都会变回虚假状态。 我应该保存这个过程,以便玩家不必再次购买以将其设置为真实吗?