让 图片 摇摆起来

本文分享了在Unity游戏开发中,如何通过调整代码参数实现游戏中花草等元素的摇摆和伸展效果。作者详细介绍了代码设计思路,包括关键参数的设置与调整,以及确保效果真实感的技巧。

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

 

最近玩  超级玛丽,地图上的 花草都会摇摆,很是有趣。

于是我用来模仿一下。摇摆和伸展 的设计。

这个是  同一个 方向摇摆的。

这个是不同方向摇摆的。

代码设计很简单,开放了两个参数接口,就是摆动和拉伸的 幅度。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class dongqilai : MonoBehaviour
{

    Vector3 vec;
    Vector3 vecs;
    Quaternion rotations;
    void Start()
    {
        vec = transform.position;
        vecs = transform.localScale;
        rotations = transform.rotation;
        zhuan_dongleiji = rotations.z;
        rd = Random.Range(0, 100);
    }
    private int rd;
    void Update()
    {

    }
    public float zhuan_dongspeed;
    private int zhuan_zongshen;
    private int zhuan_zhengfanqiehuan;
    private float zhuan_dongleiji;

    public float yidonglasheng_dongspeed;
    private int yidonglasheng_zongshen;
    private int yidonglasheng_zhengfanqiehuan;
    private float yidonglasheng_dongleiji;


    void LateUpdate()
    {
        rd--;
        if (rd < 0)
        {
            zhuan_zongshen++;
            if (zhuan_zongshen > 44)
            {
                zhuan_zhengfanqiehuan++;
                zhuan_zongshen = 0;
            }
            //正常转
            if (zhuan_zhengfanqiehuan % 2 == 0)
            {
                zhuan_dongleiji -= zhuan_dongspeed;
            }
            else
            {
                zhuan_dongleiji += zhuan_dongspeed;
            }
            yidonglasheng_zongshen++;
            if (yidonglasheng_zongshen > 22)
            {
                yidonglasheng_zhengfanqiehuan++;
                yidonglasheng_zongshen = 0;
            }

            if (yidonglasheng_zhengfanqiehuan % 2 == 0)
            {
                vec.y += yidonglasheng_dongspeed;
                vecs.y += yidonglasheng_dongspeed;
            }
            else
            {
                vec.y -= yidonglasheng_dongspeed;
                vecs.y -= yidonglasheng_dongspeed;
            }
            transform.position = vec;
            transform.localScale = vecs;
            rotations.eulerAngles = new Vector3(0.0f, 0.0f, 500 * zhuan_dongleiji);
            transform.rotation = rotations;
        }
    }
}

这里面最关键的一点就是,图片 中心点,必须 调整到  下方。

 

转载于:https://www.cnblogs.com/big-zhou/p/11135255.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值