AddComponent添加脚本后,新添加的脚本的执行顺序

本文探讨了在Unity中通过脚本动态AddComponent添加新脚本时,新添加脚本的Awake、Start和Update函数的执行顺序。实验结果显示,新脚本的Awake函数会立即执行,随后按原本脚本的Start和Update顺序执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在看项目的时候发现了一个问题,一个游戏物体通过脚本添加了另一个脚本,那新添加的脚本的执行顺序是怎么样的呢?

笔者做了以下的实验,在场景中添加了一个空的游戏物体,新建两个脚本:FirstScript.cs和SecondScript.cs,代码如下:

FirstScript.cs:

using UnityEngine;
using System.Collections;

public class FirstScript : MonoBehaviour {

    // Use this for initialization
    void Start () 
    {
        FirstPrint();
        test();
    }

    void FirstPrint()
    {
        Debug.Log("FristPrintFun");
        gameObject.AddComponent<SecondScript>();
    }

    void test()
    {
        Debug.Log("TestFun");
    }

    // Update is called once per frame
    void Update () 
    {
        Debug.Log("FirstScript Update");
     } 
 }
SecondScript.cs:

using UnityEngine;
using System.Collections;

public class SecondScript : Mon
Unity中,你可以通过以下步骤将Sprite添加到滚动面板(通常称为ScrollRect): 1. 首先,你需要创建或导入一个Sprite资源。这可以在Project窗口中完成,选择"Assets" -> "Import New Asset" -> "Sprite (2D and UI)"。 2. 接下来,在你的场景中找到并创建一个UI Canvas,这是UI元素的容器,包括滚动面板。 3. 使用Inspector窗口,在Canvas组件上右键并选择"Add Component",然后搜索并添加`UI.ScrollRect`组件。 4. 在ScrollRect组件上,你会看到一些设置选项,如Content Size、Horizontal Scrollbar 和 Vertical Scrollbar等。确保Content Size 设置得足够大,以便放置多个 Sprites。 5. 在你的游戏中创建一个C#脚本或者选中ScrollRect,点击顶部菜单栏的"Assets" -> "Create" -> "C# Script",为这个ScrollRect分配一个脚本。 6. 在创建的脚本中,编写代码如下: ```csharp using UnityEngine; using UnityEngine.UI; public class AddSpriteToScrollPanel : MonoBehaviour { public Sprite[] sprites; // 在Inspector里设置的Sprite数组 private ScrollRect scrollRect; void Start() { scrollRect = GetComponent<ScrollRect>(); // 获取ScrollRect组件 foreach (var sprite in sprites) { RectTransform childTransform = Instantiate(new RectTransform(), transform); // 创建RectTransform实例 Image imageComponent = childTransform.gameObject.AddComponent<Image>(); imageComponent.sprite = sprite; scrollRect.content.anchoredPosition = new Vector2(0, scrollRect.content.anchoredPosition.y + imageComponent.rect.height); // 添加动画效果,让的Sprite自动滚动到底部 } } } ``` 7. 运行游戏,现在你应该能看到你的Sprites按照顺序逐个出现在滚动面板上了。每次添加的Sprite时,记得更`sprites`数组,并调整内容位置以保持动画效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值