小弟初學者,C#掌握地不牢,下面這段代碼38行處報錯了,
原來的例子是針對Unity4的,可以直接用rigidbody2D.velocity,但是我裝的是Unity5,支持不了這個用法,求指點。。。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayController : MonoBehaviour {
[HideInInspector]
public bool isFacingRight = true;
[HideInInspector]
public bool isJumping = false;
[HideInInspector]
public bool isGrounded = false;
public float jumpForce = 650.0f;
public float maxSpeed = 7.0f;
public Transform groundCheck;
public LayerMask groundLayers;
private float groundCheckRadius = 0.2f;
Rigidbody2D r;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
private void FixedUpdate()
{
isGrounded = Physics2D.OverlapCircle
(groundCheck.position, groundCheckRadius, groundLayers);
float move = Input.GetAxis ("Horizontal");
r = GetComponent<Rigibody2D> ();
this.r.velocity = new Vector2 (move * maxSpeed, r.velocity.y);
if ((move > 0.0f && isFacingRight == false)
|| (move < 0.0f && isFacingRight == true))
{
Flip ();
}
}
void Flip()
{
isFacingRight = !isFacingRight;
Vector3 playerScale = transform.localScale;
playerScale.x = playerScale.x * -1;
transform.localScale = playerScale;
}
}
uj5u.com熱心網友回復:
r = transform.GetComponent<Rigibody2D> ();不要在update里面獲取使用,可以放在start里先獲取,在update里在使用。轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/10941.html
標籤:Unity3D
上一篇:如何使UNITY專案別人無法打開
